NSOrderedSets lưu thứ tự của các đối tượng trong bảng. Nếu bạn truy cập một cá thể lớp con NSManagedObject với một thuộc tính là một NSOrderedSet, thì chúng sẽ theo thứ tự.Cách sắp xếp kết quả của NSFetchedResultsController bằng cách sử dụng thứ tự của NSOrderedSet
Tuy nhiên, dường như không có cách nào để truy cập vào đơn đặt hàng đó bằng cách sử dụng NSSortDescriptor khi tạo NSFetchRequest.
Nó xuất hiện từ DB SQLite thô, thứ tự đó được lưu trữ trong các trường có tên Z_FOK_<relationship name>
. Dữ liệu có sẵn, nhưng dữ liệu dường như không hiển thị thông qua các API dữ liệu cốt lõi.
Có ai biết cách viết NSSortDescriptor sẽ làm việc với DB SQLite để trả về kết quả theo thứ tự được chỉ định bởi NSOrderedSet không?
Cập nhật
Câu hỏi liên quan: NSFetchedResultsController and NSOrderedSet relationships
Điều đó có vẻ là những gì tôi thấy quá ... Tôi chỉ không thể tin rằng không có một số hỗ trợ đặc biệt cho điều này trong NSSortDescriptor để NSFetchedResultsControllers có thể tận dụng thứ tự. Nếu không, các nhà phát triển vẫn cần phải thêm và quản lý theo cách thủ công thuộc tính "sortOrder" - điều này sẽ loại bỏ mục đích của NSOrderedSet. –
@CoreyFloyd: Lưu ý rằng bạn có thể có hai mối quan hệ đã đặt hàng 'A1 <-->> B' và' A2 <-->> B' với các thứ tự hoàn toàn khác nhau của các đối tượng 'B', vì vậy" tìm nạp đối tượng B được sắp xếp theo mối quan hệ đã sắp xếp "sẽ là không rõ ràng. –
NSFetchRequest phải được tạo bằng bộ mô tả sắp xếp. Nhưng nếu có một số cách để tạo nó mà không có một bộ mô tả sắp xếp (Sử dụng một thể loại, phân lớp, vv ...) có thể khi bạn thực hiện yêu cầu tìm nạp nó sẽ mặc định theo thứ tự NSOrderedSet. Nhiều khả năng nó sẽ chỉ là hành vi không xác định nhưng nó có thể đáng để bắn. –