Thật không may CoreData nhanh chóng vẫn là một nỗi đau lớn đặc biệt là với mối quan hệ một-nhiều thứ tự. Có, nó vẫn là NSOrderedSet đang được sử dụng bởi CoreData cho nhiều mối quan hệ. Câu hỏi đặt ra là cách thêm/xóa các mục này. Xcode chưa bao giờ có thể tạo ra accessors đúng cho các bộ được đặt hàng cho đến nay - ngay cả trong Objective cho phép một mình Swift !!
Có chủ đề này tiết kiệm tới nhiều mối quan hệ trong Swift: How to define CoreData relationship in Swift?
Nhưng, than ôi !, gì đề cập trong chủ đề này từng làm việc trong thế giới Swift 2.0. Vì vậy, cách giải quyết hiện tại là gì? Tôi đào sâu vào điều này, và cách duy nhất để làm việc này là tạo ra các nguồn cho các thực thể được đề cập, trong Mục tiêu C, và không nhanh chóng và xuất các tiêu đề của chúng trong tiêu đề bắc cầu. Ngoài ra, bạn cần phải chắc chắn rằng bạn bao gồm sửa chữa workaround quan trọng đối với Xcode để tạo accessors thích hợp cho bộ ra lệnh:
https://github.com/CFKevinRef/KCOrderedAccessorFix
Bạn nên đảm bảo để call- model.kc_generateOrderedSetAccessors() trong mã tạo mô hình của bạn trong appdelegate để gọi sửa lỗi này.
Sau khi hoàn tất, bây giờ bạn có thể bắt đầu một cách an toàn bằng cách sử dụng trình truy cập được tạo trên mô hình của bạn để thêm các mục vào mối quan hệ nhiều.
tôi đã tạo ra một dự án mẫu và đang trong github và hy vọng nó helps-
https://github.com/shripada/CoreDataToManyRelationshipInSwift2.0
Hóa ra nó trở nên đơn giản hơn trong XCode 7 beta 5. Core Data giờ đây sử dụng NSSet cho các mối quan hệ một-nhiều. Tạo một NSMutableSet như "let clientSet: NSMutableSet = []" sau đó thêm một đối tượng Core Data vào tập "clientsSet.addobject (aClientObject)" và sau đó đặt tập hợp vào mối quan hệ như "event.clients = clientsSet" và bạn ' làm lại. Tất cả những gì tôi phải làm là tạo lại các lớp học không hoạt động (như Sự kiện của tôi). Tôi vẫn đang sử dụng một số lớp học được tạo ra từ Core Data trong XCode 7 beta 4 và điều đó đã làm tôi rối tung lên (Sự kiện đã sử dụng NSOrderedSet thay vì NSSet). – Kent
Ồ, đó là điều tuyệt vời để biết, tôi là Xcode 7, beta 4. – Shripada