如何使 NSManaged public var
成为可选的 bool 值?当我输入以下内容时:
import Foundation
import CoreData
import UIKit
extension SomeClass {
@NSManaged public var isLiked: Bool?
@NSManaged public var isDisliked: Bool?
}
我收到错误:
属性不能被标记为@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")
}
}
关于swift - 使 "NSManaged public var"成为可选 bool 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45419748/