2011-09-09 30 views
6

Tôi có đoạn mã sau:"NSSet allObjects" có đặt hàng ngẫu nhiên không?

self.temporaryImageArray = [(NSSet *)[[array objectAtIndex:0] images] allObjects] 

Mảng giữ một đối tượng Band từ mô hình CoreData tôi. Nó có một NSSet như một tài sản được gọi là "hình ảnh".

Bây giờ tôi sử dụng số này temporaryImageArray để xác định qua dấu thời gian cho dù hình ảnh có cần được cập nhật hay không. Tôi đã gặp một số hành vi rất ngẫu nhiên và câu hỏi của tôi bây giờ là:

Trả lại các đối tượng từ Bộ theo thứ tự ngẫu nhiên?

Có cách nào để ngăn chặn điều này hoặc để nó trả lại theo thứ tự không? Nó sẽ làm giảm sự phức tạp của mã của tôi rất nhiều.

Trả lời

3

Một tập hợp không có thứ tự. Tuy nhiên, trong 10.7 (Lion), có một lớp học NSOrderedSet. Tính năng này không khả dụng trong iOS 4.0.

+0

:-(thanks anyways .. – Octoshape

10

NSSet là bộ sưu tập không có thứ tự. Nó không có ý tưởng "thứ tự" của các đối tượng của nó là gì. Do đó, khi bạn gọi -allObjects, nó sẽ trả về chúng không có thứ tự.

Lưu ý rằng các tài liệu trên -allObjects trạng thái:

Một mảng chứa các thành viên của bộ, hoặc một mảng rỗng nếu tập không có thành viên. Thứ tự của các đối tượng trong mảng không được xác định.

(tôi nhấn mạnh)

3

NSOrderedSet và NSMutableOrderedSet là bây giờ đã có trong iOS 5 chỉ để bạn đang lưu giữ đến nay.

Đây là link

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