【发布时间】:2020-06-14 19:47:30
【问题描述】:
我正在尝试检查某个实体是否有数据,所以我写了这段代码,我不确定我的代码是否正确。当我检查我的代码时,我发现如果有数据,我得到的答案是“数据存在” ,但如果没有数据编译器忽略else语句。我不明白为什么会这样。
func entityIsEmpty()
{
let context = objAppDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSFetchRequestResult>.init(entityName: "myEntity")
//do{
//result = try context.fetch(fetchRequest) as! [NSManagedObject]
result = fetchRequest as! [NSManagedObject] //ERROR
for data in result{
var obj = userNSObj()
obj.myObject = data.value(forKey: "myAttribute") as! String
myArray.append(obj)
if myArray != nil{
print("data exist")
}else{
print("data not exist")
}
}
//}catch{
//print("Failed")
//}
}
【问题讨论】:
-
将
if myArray != nil替换为if !myArray.isEmpty。但是,只有在方法开始时数组为空时,这才可靠地工作。 -
直接带我到
catch -
只是换行不能
throw报错。 -
请查看更新后的问题。我不确定我所做的改变。
标签: swift core-data swift4 xcdatamodel