2013-07-18 14 views

Trả lời

11

Nếu bạn muốn đặt hàng, bạn sẽ phải sử dụng NSOrderedSet.

NSOrderedSet *set = [NSOrderedSet orderedSetWithArray:theArray]; 
+2

Ngoài ra hãy chắc chắn điều này thực sự những gì bạn muốn là. NSOrderedSet chủ yếu được sử dụng với CoreData, và trong khi nó có thể được sử dụng ở nơi khác thường thì NSArray sẽ hoạt động tốt cho bạn. http://nshipster.com/nsorderedset/ –

+3

Vâng, lý do chính để sử dụng tập lệnh được đặt hàng sẽ là các mục nhập sẽ không được duy nhất (các bản sao bị xóa), nhưng bạn vẫn sẽ duy trì thứ tự của các mục còn lại. – rdelmar

2

Nếu bạn quan tâm đến đơn đặt hàng, có thể bạn không muốn sử dụng NSSet.

-1

Có sự là giải pháp cho Swift 3:

let mutableArray : NSMutableArray! 
// Use type NSObject or any custom type 
let set = NSSet(array: mutableArray as NSArray as! [NSObject]) 
+0

Bạn có thể giải thích điều này sẽ giúp ích gì trong việc đưa NSSet vào với cấu trúc phần tử được sắp xếp không? –

+0

Trong trường hợp của tôi, thứ tự trong NSMutableArray được bảo tồn sau khi hội tụ trên NSSet –

+0

Nhưng chính xác tôi chỉ muốn hiểu cơ chế đằng sau điều đó. Bởi vì nó không bình thường đối với việc bảo đảm trật tự khi chúng ta đang điền nội dung của NSSet vào NSArray. Vì vậy, là populating từ NSMutableArray khác nhau từ đó populating từ NSSet và nếu nó là sau đó tại sao? –

Các vấn đề liên quan