我在 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 不能正常工作吗?
谢谢!