2012-06-11 25 views
0

我在iOS上使用核心數據,並遇到NSFetchRequest問題。如何調試NSFetchRequest

如果我創建一個NSFetchRequest像這樣:我的食譜實體

NSFetchRequest* request = [ NSFetchRequest fetchRequestWithEntityName:@"Recipe"]; 

,然後創建實例,它們出現在讀取請求的結果如預期。但是,一旦我保存數據庫,並嘗試重新加載它們,那麼我的獲取請求不會返回任何結果。

數據庫保存成功,沒有錯誤,並使用SQLite數據庫瀏覽器我可以看到,我的所有實體都已保存在基礎SQLite數據庫中。但他們不會加載...

是否有一個簡單的方法來診斷髮生在NSFetchRequest引擎蓋下發生了什麼,所以我可以找出它爲什麼不會加載我的實體?

// load recipes unsorted 
NSFetchRequest* request = [ NSFetchRequest fetchRequestWithEntityName:@"Recipe"]; 
request.sortDescriptors = [[NSArray alloc] init]; 

NSFetchedResultsController* frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.recipeDatabase.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; 

// fetch results empty 
NSError* error = nil; 
[frc performFetch:&error];  
+0

你可以分享一些代碼如何加載和呈現您的數據? – Pfitz

回答

0

對不起....我發現我的問題。當州爲UIDocumentStateClosed時,我並未打開UIManagedDocument。奇怪的是,即使文檔已關閉,在文檔managedObjectContext上操作時,其他所有內容似乎也能正常工作。