CoreData - CoreData对象的安全检查值



按照我目前的代码安排方式,下面这行代码将在各种托管对象上下文中运行。获取的一些实体将具有"complededDate"属性,而其他实体将不具有"completedDate"属性。

let task = retrieved_MgObjCntxt[(indexPath as NSIndexPath).row]
if let itemFinDate = task.value(forKey: "completedDate") {
      ...

我想通过使用if-let,如果这失败了,那么它就好了…但我遇到了"lldb"崩溃。我一直在尝试使用do/catch和throw来解决它,但我不太熟悉这些是如何工作的。

是否有一种方法可以安全地检查,以便如果"completedDate"不存在,它只是跳过if闭包内的代码?

let task = retrieved_MgObjCntxt[(indexPath as NSIndexPath).row]
if task.entity.propertiesByName.keys.contains("completeDate") {
    ...
}

您可以使用以下命令查找对象实体类型的所有键:

managedObject.entity.attributesByName

然后查看字典的键是否包含"completedDate"

最新更新