2015-05-25 3 views
-1

Когда я делаю выборку из таблицы в основных данных, у которых есть данные, она не возвращается с любыми результатами.NSFetchedResultsController ничего не возвращает

Я выполнил чтение на столе перед выполнением выборки, и данные есть.

Вот код.

func fetchAllFoods() -> NSFetchedResultsController { 
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let context: NSManagedObjectContext = appDel.managedObjectContext! 

    let fetchRequest = NSFetchRequest() 

    //3 - set the correct table 
    let entity = NSEntityDescription.entityForName(self.entityName, inManagedObjectContext: context) 
    fetchRequest.entity = entity 

    fetchRequest.fetchBatchSize = 20 

    let sectionSortDescriptor = NSSortDescriptor(key: "foodCategory", ascending: true) 

    let sortDescriptors = [sectionSortDescriptor] //, secondSortDescriptor] 

    fetchRequest.sortDescriptors = sortDescriptors 

    //4 - navigate in relationship to group by startdate 
    let aFetchedResultsController = NSFetchedResultsController(
     fetchRequest: fetchRequest, 
     managedObjectContext: context, 
     sectionNameKeyPath: "foodCategory", 
     cacheName: nil) 

    aFetchedResultsController.delegate = self 


    return aFetchedResultsController 

} 

Когда я положил перерыв непосредственно перед возвратом, это то, что показывает. не

enter image description here

Нет разделов, нет данных.

Уверен, что мне не хватает чего-то фундаментального, поэтому дайте мне знать, если мне нужно поделиться дополнительной информацией.

Большое спасибо!

ответ

1

Вы должны вызвать performFetch: на извлеченной контроллер результатов:

let aFetchedResultsController = NSFetchedResultsController(...) 
aFetchedResultsController.delegate = self 
var error : NSError? 
if !aFetchedResultsController.performFetch(&error) { 
    // report error ... 
} 
+0

Спасибо, я знал, что это было что-то основное, и я не могу поверить, что я пропустил это. В качестве побочного примечания, «пусть ошибка ...» выдаст ошибку в «& error». Кажется, что использование var вместо let очищает его. Еще раз спасибо. –

+0

@WadeCantley: Да, 'var' является правильным, исправленным. –

Смежные вопросы