使用Swift进行核心数据瞬态值

Rob*_*Rob 14 core-data ios swift

有谁知道,或者有一个例子,如何使用Swift处理核心数据瞬态值?我知道在属性之前使用@NSManaged,但无法弄清楚如何使用Swift编写逻辑来构建瞬态值.

D4t*_*aya 14

选中数据模型中的瞬态字段以查找特定属性(例如sectionTitle).
为该实体创建类,它看起来像

 class Message: NSManagedObject {

    @NSManaged var body: String?
    @NSManaged var time: NSDate?
    @NSManaged var sectionTitle: String?
}
Run Code Online (Sandbox Code Playgroud)

编辑它并使其像这样:

class Message: NSManagedObject {

    @NSManaged var body: String?
    @NSManaged var time: NSDate?

    var sectionTitle: String? {
        return time!.getTimeStrWithDayPrecision()
        //'getTimeStrWithDayPrecision' will convert timestamp to day
        //just for e.g.
        //you can do anything here as computational properties
    }
}
Run Code Online (Sandbox Code Playgroud)

更新 - Swift4
使用@objcSwift 4的标签:

@objc var sectionTitle: String? {
   return time!.getTimeStrWithDayPrecision()
}
Run Code Online (Sandbox Code Playgroud)

  • 如果Entity属性中的"Codegen"设置为"manual/none",则此方法很有效.如何处理它"Codegen"设置为"类别/扩展"? (4认同)
  • 当在获取请求中使用时,transient 属性不适用于排序描述符。它会给出一个错误,因为 keypath yourTransientVariable not found in entity <NSSQLEntity EntityName id=1> with userInfo of (null)。您只能对非瞬态属性进行过滤和排序。/sf/answers/1249749301/ (2认同)