2010-10-19 83 views
0

我對iPhone開發相對比較陌生,一直在試圖構建一個應用程序來了解CoreData如何工作。NSManagedObjectContext核心數據設備/模擬器差異

我試圖實現一些功能,這將允許我檢測是否有任何東西被持久存儲,如果是的話 - 給用戶刪除這些對象的選項。

我想知道在設備上檢索數據時是否需要考慮時序問題,而不是模擬器。

我創建了一個簡單的核心數據應用程序,使用XCode嚮導來使用UITableViewController類呈現一些數據。

我從我的RootViewController的類下面的代碼片段:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    NSSet* obj = nil; 
    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];  
    obj = [context registeredObjects]; 

    if (obj.count == 0) 
    { 
     // Do stuff to add initial data to store 
    } 
    else 
    { 
     // Do stuff to delete objects from store if user wants 
    } 
} 

如果我在模擬器上運行的代碼(之前曾添加到我的商店),我得到一個非零值obj.count,但是如果我在設備上運行它,即使我以前添加到商店,obj.count始終爲零。

任何想法,我可能會出錯?

也許我的,我要實現的目標是不正確總體方法......

回答

0

作爲後續行動,也許我應該問的問題是,如果我在我的RootViewController的範圍內做到這一點(再次):

- (NSFetchedResultsController *)fetchedResultsController { 

<snippet_begin> 

NSFetchedResultsController *aFetchedResultsController = 
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"]; 
aFetchedResultsController.delegate = self; 
self.fetchedResultsController = aFetchedResultsController; 

NSSet* obj = nil; 
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];  
obj = [context registeredObjects]; 

</snippet_end> 

} 

上下文變成有效確定性的時間?

相關問題