这是我拥有的一个有效的 Swift 函数:
func myColorFuntion (object:NSManagedObject) -> UIColor {
if (object.valueForKey("bgColor") == nil) {return UIColor.yellowColor()}
return NSKeyedUnarchiver.unarchiveObjectWithData(object.valueForKey("bgColor") as! NSData) as! UIColor
}
我的问题与带有“if”语句的行有关。 object.valueForKey("bgColor")
以 nil 值开头,因为它尚未定义。
我可以使用如下代码为 object.valueForKey("bgColor")
设置一些非 nil 的东西,它可以工作。
let theColorData:NSData = NSKeyedArchiver.archivedDataWithRootObject(UIColor.cyanColor())
var object:NSManagedObject
object.setValue(theColorData forKey:"bgColor")
但是如何将 object.valueForKey("bgColor")
设置回 nil?我使用 nil 和 NSNull 进行的几次试验都没有奏效。
`
最佳答案
在 Swift 4 中,尝试:
object.setNilValueForKey("your attribute name")
关于ios - 如何在 Swift 中将核心数据属性设置为 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713739/