RootVC.swift
private let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext private var fetchRecordRequestController: NSFetchedResultsController = NSFetchedResultsController() override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. // Initialize fetch request fetchRecordRequestController = NSFetchedResultsController(fetchRequest: fetchRecordRequest(), managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil) fetchRecordRequestController.delegate = self // Fetch data from object do { try fetchRecordRequestController.performFetch() } catch let fetchError as NSError { print("(RootVC)fetchError: \(fetchError), \(fetchError.userInfo)") }}
AddRuleVC.swift
// Initialize managedObjectContext for creating a new object from the input
private var managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
// Method to save the extracted values to CoreData Objects
func saveValues() {
// Setting up, to save on a private queue
let privateManagedObjectContext = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
privateManagedObjectContext.persistentStoreCoordinator = managedObjectContext.persistentStoreCoordinator
// Initialize entity description
let RuleDescription = NSEntityDescription.entityForName("Rule",inManagedObjectContext:privateManagedObjectContext)
let rule = Rule(entity: RuleDescription!, insertIntoManagedObjectContext: privateManagedObjectContext)
// Perform Block
privateManagedObjectContext.performBlock { () -> Void in
// Set object values from temporary variables
rule.music = musicTemp! as MPMediaItemCollection
print("musicTemp = \(musicTemp!.count)=========>saveValues")
// Save the object
do {
//print(NSStringFromClass((self.rule?.classForCoder)!))
try rule.managedObjectContext?.save()
} catch let saveError as NSError {
print("(AddRuleViewController)saveError: \(saveError), \(saveError.userInfo)")
}
}
}
My RootVC is for fetching the data stored using AddRuleVC. I can save as many rules as I'd want to, but they do not show once the AddRuleVC segues back to the RootVC. They only show up after a relaunch.