Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import CoreData
- class CoreDataFetchController<T : NSManagedObject> {
- weak var delegate: NSFetchedResultsControllerDelegate? = nil {
- didSet {
- fetchedResultsController.delegate = delegate
- }
- }
- let fetchedResultsController: NSFetchedResultsController
- init(fetchedResultsController: NSFetchedResultsController) {
- self.fetchedResultsController = fetchedResultsController
- fetchedResultsController.performFetch(nil)
- }
- init(let entityName: String, let managedObjectContext: NSManagedObjectContext, let sortDescriptors: [NSSortDescriptor], let predicate: NSPredicate? = nil, let sectionNameKeyPath: String? = nil, let cacheName: String? = nil) {
- let request = NSFetchRequest(entityName: entityName)
- request.sortDescriptors = sortDescriptors
- request.predicate = predicate
- fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: managedObjectContext, sectionNameKeyPath: sectionNameKeyPath, cacheName: cacheName)
- fetchedResultsController.performFetch(nil)
- }
- func numberOfRowsInSection(section: Int) -> Int {
- if let s = fetchedResultsController.sections as? [NSFetchedResultsSectionInfo] {
- return s[section].numberOfObjects
- } else {
- return 0
- }
- }
- func numberOfSections() -> Int {
- if let s = fetchedResultsController.sections as? [NSFetchedResultsSectionInfo] {
- return s.count
- } else {
- return 0
- }
- }
- func objectAtIndexPath(let indexPath: NSIndexPath) -> T {
- return fetchedResultsController.objectAtIndexPath(indexPath) as T
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement