按照我目前的代码安排方式,下面这行代码将在各种托管对象上下文中运行。获取的一些实体将具有"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"