这是我拥有的一个有效的 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")
,它可以工作。
let theColorData:NSData = NSKeyedArchiver.archivedDataWithRootObject(UIColor.cyanColor())
var object:NSManagedObject
object.setValue(theColorData forKey:"bgColor")
但是我怎样才能object.valueForKey("bgColor")
回到零呢?我使用 nil 和 NSNull 进行的几次试验都没有奏效。
`