Core Data中缺少对象

时间:2012-01-26 03:42:35

标签: iphone objective-c ios cocoa-touch core-data

好吧,我疯狂地试图弄清楚这个,所以我想我发布它,看看是否有人知道发生了什么。

我将实体添加到Core Data并检索它们很好,一切都在我的应用程序中完美显示。但出于某种原因,当我使用NSFetchRequest获取某种类型的所有实体的列表时,它总是返回少于应有的对象。我知道对象在某处,因为我的应用程序可以在应用程序的其他位置显示数据。另外,我手动检查了sqlite文件,发现它也缺少一个对象。如果我的应用程序正在访问数据,这怎么可能?

这是我用来获取实体的代码。我在我的应用程序的许多地方使用此代码,它总是返回一个较少的对象然后确实存在,但我的应用程序仍然要访问它。

NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MWLocationItem" 
                                          inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:nil];

有没有人知道发生了什么?如果您有任何其他想要查看的代码,请与我们联系。

1 个答案:

答案 0 :(得分:1)

1。我认为,如果你忽略错误,这是可能的

[NSManagedObjectContext save:nil]

尝试使用下面的方法,检查一切是否正常

[NSManagedObjectContext save:&error]

2. 另一个可能的原因是您将includesPendingChanges属性设置为fetchrequest

request.includesPendingChanges = NO;

如果没有正确答案:)你能提供更多的源代码行吗?