Leider ist CoreData mit swift immer noch ein großer Schmerz vor allem bei geordneten Ein-Viele-Beziehungen. Ja, es ist immer noch NSOrderedSet, das von CoreData für viele Beziehungen verwendet wird. Die Frage ist, wie Sie Elemente hinzufügen/entfernen. Xcode war bisher noch nie in der Lage, Accessoren für die geordnete Menge zu erzeugen - sogar in Objective, geschweige denn Swift !!.
Es gibt diesen Thread zu-viele Beziehungen in Swift auf Sparend: How to define CoreData relationship in Swift?
Aber ach !, nichts in diesem Thread erwähnt jemals in Swift 2.0 Welt funktioniert. Was ist die Problemumgehung für jetzt? Ich habe mich damit beschäftigt, und die einzige Möglichkeit, dies zum Laufen zu bringen, besteht darin, die Quellen für fragliche Entitäten in Objective C und nicht in swift zu generieren und deren Header im Bridging-Header zu exportieren. Darüber hinaus müssen Sie sicherstellen, dass Sie eine wichtige Abhilfe Fix sind für Xcode, um eine ordnungsgemäße Zugriffsmethoden für geordnete Menge zu erzeugen:
https://github.com/CFKevinRef/KCOrderedAccessorFix
Sie sollten sicherstellen, model.kc_generateOrderedSetAccessors() in Ihrem Modellerstellung Code in AppDelegate auf der Call um diesen Fix aufzurufen.
Sobald dies erledigt ist, können Sie jetzt sicher starten, die generierten Accessoren in Ihrem Modell zu verwenden, um Elemente zu einer to-many-Beziehung hinzuzufügen.
Ich habe ein Beispielprojekt und ist in Github erstellt und hoffen, dass es
helps-
https://github.com/shripada/CoreDataToManyRelationshipInSwift2.0
Es stellt sich heraus, dass es in XCode 7 Beta 5 einfacher geworden ist. Core Data verwendet jetzt NSSet für Eins-zu-viele-Beziehungen. Erstellen Sie ein NSMutableSet wie "let clientSet: NSMutableSet = []", fügen Sie dann dem Set "clientsSet.addobject (aClientObject)" ein Core Data-Objekt hinzu und setzen Sie das Set dann in die Beziehung wie "event.clients = clientsSet" und Sie " Wieder getan. Ich musste nur meine Klassen regenerieren, die nicht funktionierten (wie mein Event). Ich benutzte immer noch einige Klassen, die von Core Data in XCode 7 Beta 4 generiert wurden und das brachte mich durcheinander (Event verwendete NSOrderedSet anstelle von NSSet). – Kent
Oh, das ist großartig zu wissen, meins war Xcode 7, beta 4. – Shripada