3

这是我拥有的一个有效的 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 进行的几次试验都没有奏效。

`

4

1 回答 1

1

在 Swift 4 中,尝试:

object.setNilValueForKey("your attribute name")
于 2019-01-24T20:28:59.863 回答