iPhone - 核心数据NSSet关系

时间:2011-01-18 22:19:58

标签: iphone core-data

我有两个实体书籍和套装。一本书可以属于none,也可以属于一个或多个bundle。所以我在这些实体之间建立了双向对多关系。

我即将在Book部分设置此关系的值。

如果该属性是常规属性,我只会执行类似

的操作
aBook.title = @"this is my title"; 

如果我想设置一本书的标题。但由于这是双向对多关系,核心数据表明它是NSSet属性。

我的问题是:如何设置和读取此属性的值?

我首先认为这是一个常规的NSSet。因此,在阅读完产品之后我就这么做了

NSSet *aSet = Book.fromBundle;

但令我沮丧的是,aSet包含零对象

所以我以为我错误地设置了它。 我之前做过

Book.fromBundle = [NSSet setWithObject:aBundle];

(是的,所有更改都保存到数据库中)

我错过了什么吗?感谢

1 个答案:

答案 0 :(得分:1)

这是一个正常的设置,但核心数据建议不要直接分配一个新的设置(出于这个原因)。如果您使用的是自定义类,则标准实现将包含addFromBundleObject:removeFromBundleObject:方法供您使用。如果您不使用自定义类,或选择不实现这些方法,则可以使用mutableSetValueForKey:方法获取可以修改的集合。

NSMutableSet *mutableSet = [book mutableSetValueForKey:@"fromBundle"];
[mutableSet addObject:aBundle];