从获取中排除 property/field - 核心数据
Excluding a property/field from fetching - Core Data
如何从抓取中排除字段?例如我有 3 个字段:
username : String?
password : String?
capturedImages : NSSet?
of Images // 我想从抓取中排除这个
我想排除 capturedImages
因为它可能包含大量图像。如果我只想获取 username
和 password
,我应该怎么做?
由于 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 在编译之前对代码进行类型检查。
如何从抓取中排除字段?例如我有 3 个字段:
username : String?
password : String?
capturedImages : NSSet?
of Images // 我想从抓取中排除这个
我想排除 capturedImages
因为它可能包含大量图像。如果我只想获取 username
和 password
,我应该怎么做?
由于 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 在编译之前对代码进行类型检查。