I created a dataModel where I have a task. This task has several variables, but also has a one-to-many event link. These events can be like adding images or comments, and therefore there can be many events for one task. I linked them as shown below:

Entity files are also configured:
import CoreData class Task: NSManagedObject { @NSManaged var area : Area @NSManaged var pictures : [TaskPicture] @NSManaged var events : [Event] @NSManaged var requestedByDept : NSString? @NSManaged var requestedByUser : NSString? @NSManaged var workloadDept : NSString? @NSManaged var detailDescription : NSString? @NSManaged var status : NSString @NSManaged var uniqueId : NSString? @NSManaged var isActive : NSNumber @NSManaged var created : NSDate? @NSManaged var modified : NSDate? @NSManaged var thumbnail : NSData? }
and
import CoreData class Event: NSManagedObject { @NSManaged var task : Task @NSManaged var actionBy : NSString? @NSManaged var detailDescription : NSString? @NSManaged var status : NSString @NSManaged var uniqueId : NSString? @NSManaged var isActive : NSNumber @NSManaged var created : NSDate? @NSManaged var modified : NSDate? @NSManaged var type : NSString }
To me, all this looks right, but I could be wrong. Then I retrieve all the tasks in one of my viewControllers
var fetchedResultsController: NSFetchedResultsController { if _fetchedResultsController != nil { return _fetchedResultsController! } let fetchRequest = NSFetchRequest() let entity = NSEntityDescription.entityForName("Task", inManagedObjectContext: self.managedObjectContext) fetchRequest.entity = entity fetchRequest.fetchBatchSize = 20 let sortDescriptor = NSSortDescriptor(key: "created", ascending: false) fetchRequest.sortDescriptors = [sortDescriptor] let aFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil) aFetchedResultsController.delegate = self _fetchedResultsController = aFetchedResultsController var error: NSError? = nil if !_fetchedResultsController!.performFetch(&error) { println("Unresolved error \(error)") abort() } return _fetchedResultsController! }
I can assure you that managedObjectContext is both updated and correctly passed. The problem occurs when I try to access an array of events. I take each of the tasks using
let foundTask : Task = self.fetchedResultsController.objectAtIndexPath(indexPath) as Task
using cellForRowAtIndexPath, as in tableView. This works again, but then when I try let event = foundTask.events[0] or something similar, I get an error message with the message
-[_NSFaultingMutableSet objectAtIndex:]: unrecognized selector sent to instance 0x17022e9c0
I tried both listing the array as NSArray and using functions like .firstObject and also put it in an NSSet, but it never allows me to access events. It seems that during the execution of tasks, events do not occur, which leads to a data failure. I would expect him to receive events when I need them, but again, this is not so. Sorry for the long post, but I wanted to include as much information as I felt that you would need to help me. Please ask if you need more information and I will try to answer as quickly as possible.
thanks a lot