好吧,我疯了试图找出这一个,所以我想我会张贴它,看看是否有人知道发生了什么事。核心数据丢失的对象
我将实体添加到核心数据并检索它们,并在我的应用程序中完美显示。但由于某种原因,当我使用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];
有没有人知道发生了什么?请让我知道是否有任何其他代码,你想看到。
你如何验证它有一个较少的对象? fetchedObjects.count? – sosborn
是的。在我的应用程序的某些地方,它会返回正确的数字,然后在其他地方返回少一个。并手动检查sqlite文件显示一个对象丢失。 – edc1591
看起来我添加的第一个对象是“缺少的”对象。什么可能导致它不会出现在sqlite文件中? – edc1591