【问题标题】:How to set a core-data attibute to nil, in Swift?如何在 Swift 中将 core-data 属性设置为 nil?
【发布时间】: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


【解决方案1】:

在 Swift 4 中,尝试:

object.setNilValueForKey("your attribute name")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多