ale*_*wis 4 core-data nsmanagedobject swift
我怎样才能做NSManaged public var一个可选的布尔值?当我输入以下内容时:
import Foundation
import CoreData
import UIKit
extension SomeClass {
@NSManaged public var isLiked: Bool?
@NSManaged public var isDisliked: Bool?
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
属性不能被标记为@NSManaged 因为它的类型不能在 Objective-C 中表示
我想是可以既不是财产liked或disliked。
如果使用@NSManaged,则必须遵守其规则。这些规则包括使用没有选项的 ObjC。但是您不必使用@NSManaged,即使在使用 Core Data 时也是如此。只要您实现自己的访问器,就可以删除它。就像是:
public var isLiked : Bool? {
get {
willAccessValue(forKey: "isLiked")
let isLiked = primitiveValue(forKey: "isLiked") as! Int64
didAccessValue(forKey: "isLiked")
return isLiked
}
set {
willChangeValue(forKey: "isLiked")
setPrimitiveValue(newValue, forKey: "isLiked")
didChangeValue(forKey: "isLiked")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |