使用带数组的谓词的Swift CoreData

使用带数组的谓词的Swift CoreData,swift,core-data,nspredicate,Swift,Core Data,Nspredicate,我需要在CoreData中保留字符串数组,然后使用谓词过滤该数组的数据 根据此post字段类型Transformable(使用自定义类[String]),我可以正确保存字符串数组: 但是,我不能对这个字段使用谓词。具体来说,我的目标是找到保存的数组中至少有一个项与模式匹配的所有项 那么,回到问题上来:有没有一种好方法可以将数组存储在CoreData中,以便我以后可以为它应用谓词 为CoreData 不要将数组作为可转换字段放入实体 使用单个字段创建单独的实体,使用该实体而不是数组 在主实体和数

我需要在CoreData中保留字符串数组,然后使用谓词过滤该数组的数据

根据此post字段类型Transformable(使用自定义类[String]),我可以正确保存字符串数组:

但是,我不能对这个字段使用谓词。具体来说,我的目标是找到保存的数组中至少有一个项与模式匹配的所有项


那么,回到问题上来:有没有一种好方法可以将数组存储在CoreData中,以便我以后可以为它应用谓词

CoreData

不要将数组作为
可转换
字段放入
实体

  • 使用单个字段创建单独的
    实体
    ,使用该实体而不是
    数组
  • 在主
    实体
    和数组替换
    实体
    之间创建关系
  • 运行时:使用谓词查找数组
    实体的
    CoreObject
  • NSPredicate(格式:“%K=%@”,#键路径(YourArrayEntity.onlyField), 匹配字符串)

  • 使用谓词搜索主要实体
  • NSPredicate(格式:“ANY%K==%@”,#keyPath(您的main entity.relationToArrayEntity),arrayEntityFoundInPreviousStep)


    是的,那篇文章不知怎么回答了。但是,我不能使用它,因为我不熟悉Objective CAnother可能的解决方案-创建另一个具有可能数组值的实体,并在我的对象和新实体之间创建关系。是的。尽可能避免可转换属性。