2010-10-19 80 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> 

} 

上下文变成有效确定性的时间?

相关问题