ios - 如何在 Swift 中将核心数据属性设置为 nil?

标签 ios swift core-data null nsnull

这是我拥有的一个有效的 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/

相关文章:

ios - 复制了 CoreData sqlite3 文件,但复制不显示任何表格

iphone - 启动图像未在已安装的 ios web 应用程序上更新

找不到 iOS 框架

ios - Swift - 检查对象是否属于给定类型(类型已作为函数参数传递)

ios - 在 xcode 中使用 swift 设置文本字段的填充

iphone - 将sqlite数据导入CoreData

ios - ARkit 中 3D 对象上的固定按钮

iphone - UIImagePickerController, didFinishPickingMediaWithInfo 没有实现的时候

swift - 从数据库的字符串中删除/n

ios - 不使用 TableView 更新核心数据属性