Skip to content

Instantly share code, notes, and snippets.

@garohussenjian
Last active June 17, 2017 08:16
Show Gist options
  • Save garohussenjian/2e75e1f1fa3b8fba40db to your computer and use it in GitHub Desktop.
Save garohussenjian/2e75e1f1fa3b8fba40db to your computer and use it in GitHub Desktop.
//
// ObjectObserver.swift
//
// Created by Garo Hussenjian on 2/21/16.
//
import Foundation
import CoreData
struct ObjectObserver<T: NSManagedObject> {
// The fetch request should yield 0 or 1 fetched object
let fetchRequest: NSFetchRequest
let context: NSManagedObjectContext
let fetchedResultsController: NSFetchedResultsController
var object: T? {
return fetchedResultsController.fetchedObjects?.first as? T
}
init(fetchRequest: NSFetchRequest, context: NSManagedObjectContext) {
self.fetchRequest = fetchRequest
self.context = context
fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
try! fetchedResultsController.performFetch()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment