0

我在 Xcode 的数据建模器中构建了一个名为“Store”的简单实体,用于 iPhone 应用程序。我还有一个与之关联的类(Store),我已经能够使用 CoreData 毫无问题地存储和检索数据。

现在我意识到我想与另一个实体(Aisle)建立关系。Aisle 与 Store 之间已经存在一对一的关系,但由于一个 Store 中可以有多个 Aisles,因此我尝试添加相反的关系。新的关系是一对多的,与原来的一对一关系相反,是可选的,并且删除设置为级联。我还重新创建了关联的 Store 类,因此现在类定义中也有一个 NSSet ivar。

仅仅添加这种关系就会导致我现有的数据无法通过 NSFetchRequest 进行检索。在调试时,我看到请求填充的数组包含零个项目,但查看 SQL 数据库,我发现对象都在那里。如果我删除新的关系,一切都会很好。

这是我检索数据的代码:

NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Store" inManagedObjectContext:context];

[fetchRequest setEntity:entity];

NSError *error;
NSArray *storesList = [context executeFetchRequest:fetchRequest error:&error];

[fetchRequest release];

知道为什么我的 fetch 不能正常工作吗?

谢谢!

4

1 回答 1

1

您是否删除了 sqllite 文件并在模型更改后重新创建了数据库并重新填充了它?如果没有,您可能需要考虑这一点。

于 2010-08-29T21:05:53.350 回答