我正在使用Core Data框架构建iOS应用程序 .
现在我已经熟悉了Core Data实体和关系,但我想知道是否有办法声明任何具有iOS Foundation框架对象的Core Data实体 .
例如,我希望Core Data实体具有NSSet实体,如:
Foo *foo = [NSEntityDescription insertNewObjectForEntityForName:@"Foo" inManagedObjectContext:managedObjectContext];
NSSet *set = foo.set;
for (NSString *string in set) {
// do something
}
有没有办法使用Core Data框架实现这一目标?
1 回答
有一种方法可以做到这一点,但我不会告诉你,因为它听起来不是这个问题的正确解决方案 .
您说您熟悉核心数据实体和关系,因此请使用它们!
您可以为其提供一组
Bar
对象,而不是拥有一组字符串的Foo
对象,其中每个Bar
对象都有一个字符串属性 . 您可以通过使Foo
实体与Bar
具有级联删除规则的无序,多对关系来对核心数据进行建模,其中逆是与无效删除规则的一对一关系 .当您发现数据集的复杂查询可以使用NSFetchRequest轻松高效地执行时,您真的很感激在Core Data中明确建模您的数据 .