从提取中排除属性/字段 - 核心数据

时间:2016-02-06 02:26:52

标签: swift core-data swift2 nsfetchrequest

如何从提取中排除某个字段?例如,我有3个字段:

  1. username : String?

  2. password : String?

  3. capturedImages : NSSet?图片//我想将其排除在提取

  4. 我想排除capturedImages因为它可能包含大量图片。如果我只想获取usernamepassword,我应该怎么做?

1 个答案:

答案 0 :(得分:2)

由于capturedImages是一种关系,因此这些实体不会被预取(默认情况下),而是作为a fault in your object graph的一部分存在。

在您专门访问该组的项目之前,不会检索您的图像。

在不相关的注释中,您可以按如下方式修改NSManagedObject子类,以便更轻松地使用Swift中的对象。

  • 如果属性在模型中不是可选的,则不要将属性定义为可选属性。
  • 使用Swift Set类型代替NSSet
  • 强烈输入集合的内容。

    @NSManaged var username: String
    @NSManaged var password: String
    @NSManaged var capturedImages: Set<Image>
    

这消除了不必要的解包或转换,并允许Swift在编译之前对代码进行类型检查。