【发布时间】:2015-06-08 15:49:56
【问题描述】:
这是我拥有的一个有效的 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 进行的几次试验都没有成功。
`
【问题讨论】:
-
为什么不使用透明或您选择的默认颜色而不是 null?
-
另外,你在这里指的是什么类型的对象?按钮、背景、文本视图?
-
你尝试
object.setValue(nil, forKey:"bgColor")时发生了什么? -
谢谢,马库斯的回答有效。我之前尝试过但失败了,因为我做得不对。
标签: ios swift core-data null nsnull