I have a one-to-many relationship that looks like so,
I've set up my model classes in a file to match:
import CoreData import Foundation class Board: NSManagedObject { @NSManaged var boardColor: String @NSManaged var boardCustomBackground: AnyObject? @NSManaged var boardID: String @NSManaged var boardName: String @NSManaged var lists: NSSet } class List: NSManagedObject { @NSManaged var listID: String @NSManaged var listName: String @NSManaged var board: Board }
Because I'm fetching data from multiple JSON endpoints, I have to save my lists seperately from my boards. What I want to do is create/update a list for a board with a matching boardID.
Here's where I am after multiple attempts:
Based on Defining CoreData Relationships in Swift and this, I tried to implement @Keenle's answer for define list objects inside a board:
import Foundation extension Board { func addListObject(value:List) { var items = self.mutableSetValueForKey("lists"); items.addObject(value) } func removeListObject(value:List) { var items = self.mutableSetValueForKey("lists"); items.removeObject(value) } }
However, I ran into the following error at board.lists.addListObject(lists)
: 'NSSet' does not have a member named 'addListObject'`
Instead of board.lists.addListObject(lists)
, I also tried board.lists.listName = listName
as implied in this Obj-C example, but that sadly didn't work either.
(Also, The println
output is correctly specifying the right board and list.)
Thanks in advance!