2012-02-29 28 views
8

Tôi đã xem qua tài liệu hiện tại và không thể tìm thấy bất kỳ thông tin nào xác nhận hành vi mà tôi thấy.Coredata và NSOrderedSet - đơn đặt hàng được xác định như thế nào?

Bắt đầu từ iOS 5, các mối quan hệ CoreData có thể được đặt hàng và trong trường hợp này đối tượng trả về là một NSOrderedSet.

Có ai xác nhận thứ tự của các đối tượng trong tập hợp khớp với thứ tự mà chúng đã được tạo không?

Chúc mừng, Rog

+1

Nhìn ra cho lỗi này trên NSOrderedSet - bạn cần phải ghi đè trong thứ tự để thực hiện việc xóa bỏ: http://stackoverflow.com/a/7922993/1046685 –

+0

Cảm ơn các người đứng đầu Damien! – Rog

Trả lời

2

Nếu bạn không sắp xếp thứ tự cho mình sử dụng sortedArrayUsingComparator: sau đó tôi tin rằng các đối tượng đều được sắp xếp theo thứ tự mà chúng được thêm vào.

Bạn cũng có thể đặt thủ công theo thứ tự với – insertObject:atIndex:.

https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSMutableOrderedSet_Class/Reference/Reference.html#//apple_ref/occ/cl/NSMutableOrderedSet

1

Bạn nên tạo một NSMutabledOrderedSet với dữ liệu từ NSOrderedSet cũ của bạn, thực hiện thay đổi và di chuyển dữ liệu của bạn trở lại một lần nữa:

NSMutableOrderedSet *orderedSet = [[NSMutableOrderedSet alloc] initWithSet:[self.myOrderedSet set]]; 
[orderedSet insertObject:newObject atIndex:index]; 
self.myOrderedSet = orderedSet; 
Các vấn đề liên quan