Ios 如何在coredata和fetching中添加数组mutablearray属性?

Ios 如何在coredata和fetching中添加数组mutablearray属性?,ios,swift,core-data,Ios,Swift,Core Data,我有一个person实体,其属性为useriD、name、phoneNumber和bookslike。我想在特定人物的“bookslike”属性中插入书名。我不知道如何声明bookLiked(它是可转换的吗?)以及如何插入新的书名。稍后我想检索特定人员的所有书名。(swift)请帮助。提前感谢有两种方法可以实现: 您可以声明一个“二进制数据”属性,并使用NSKeyedArchiver将NSArray转换为NSData,在获取它时,使用NSKeyedUnachiver重新转换它。(不推荐) 您可

我有一个person实体,其属性为useriD、name、phoneNumber和bookslike。我想在特定人物的“bookslike”属性中插入书名。我不知道如何声明bookLiked(它是可转换的吗?)以及如何插入新的书名。稍后我想检索特定人员的所有书名。(swift)请帮助。提前感谢

有两种方法可以实现:

  • 您可以声明一个“二进制数据”属性,并使用NSKeyedArchiver将NSArray转换为NSData,在获取它时,使用NSKeyedUnachiver重新转换它。(不推荐)
  • 您可以创建另一个类似于书籍的托管对象,然后在模型中设置一对多关系,因此当您重新生成NSManagedObject子类时,您将在likedBooks属性中保留一个NSSet引用,您可以使用预定义的方法将书籍添加到其中,这些方法应在“Person”中自动创建托管对象子类
希望这有帮助

编辑

下面是xcdatamodel文件的示例:

正确设置关系,然后确保为每个关系(在两个实体上)设置反向。确保为person-to-likedbook关系选择了Delete rule:Cascade,以便在删除此人时删除此人的所有书籍。还要将该关系设置为“多”,以便能够在NSSet中添加多本喜欢的书籍。(就像照片中一样)


现在,您必须在Xcode中的编辑器菜单中选择创建NSManagedObjectSubclass,选择您的实体,然后在此步骤之后创建这两个类。

谢谢您的回答。2.事实上,我不知道第二种方法怎么做。。我想研究一下。您有任何示例代码吗?我将很快编辑我的答案,告诉您模型的外观,以便您了解如何创建关系和托管对象子类
How to add array of string into a specific attribute of a record?