在我的数据模型中添加关系会导致 NSFetchRequest 返回零项

Posted

技术标签:

【中文标题】在我的数据模型中添加关系会导致 NSFetchRequest 返回零项【英文标题】:Adding a relationship in my data model causes NSFetchRequest to return zero items 【发布时间】:2010-08-29 21:00:10 【问题描述】:

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

谢谢!

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在我的数据模型中添加关系会导致 NSFetchRequest 返回零项的主要内容,如果未能解决你的问题,请参考以下文章

我的数据模型中需要什么关系才能将它们连接到我的PowerPivot表中?

更改核心数据关系验证规则后保存缓慢

如何添加和查看核心模型关系的数据

在项目中插入 CoreML 模型会导致错误

将 CoreData 数据模型文件添加到 XCode 4.2 会导致源代码控制停止使用问号

coreData为关系表添加其他属性的多对多关系