iPhone - 核心数据NSSet关系

Spa*_*Dog 5 iphone core-data

我有两个实体书籍和捆绑.一本书可以属于none,也可以属于一个或多个bundle.所以我在这些实体之间有双向对多的关系.

我即将在Book部分设置这种关系的价值.

如果属性是常规属性,我只会做类似的事情

aBook.title = @"this is my title"; 
Run Code Online (Sandbox Code Playgroud)

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

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

我首先认为这是一个常规的NSSet.所以,看完产品后,我就这么简单了

NSSet *aSet = Book.fromBundle;
Run Code Online (Sandbox Code Playgroud)

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

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

Book.fromBundle = [NSSet setWithObject:aBundle];
Run Code Online (Sandbox Code Playgroud)

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

我错过了什么吗?谢谢

ugh*_*fhw 1

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

NSMutableSet *mutableSet = [book mutableSetValueForKey:@"fromBundle"];
[mutableSet addObject:aBundle];
Run Code Online (Sandbox Code Playgroud)