从获取中排除 property/field - 核心数据

Excluding a property/field from fetching - Core Data

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

  1. username : String?

  2. password : String?

  3. capturedImages : NSSet? of Images // 我想从抓取中排除这个

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

由于 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 在编译之前对代码进行类型检查。