如何检查CoreData是不是为空?
Posted
技术标签:
【中文标题】如何检查CoreData是不是为空?【英文标题】:How to check if CoreData is empty?如何检查CoreData是否为空? 【发布时间】: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
报错。
请查看更新后的问题。我不确定我所做的改变。
【参考方案1】:
编辑后你把代码弄乱了。
这会检查获取的数据数组是否为空,如果数组为空,则检查return
s
func entityIsEmpty()
let context = objAppDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<myEntity>(entityName: "myEntity")
do
let result = try context.fetch(fetchRequest)
if result.isEmpty
print("data not exist")
return
else
print("data exist")
for data in result
var obj = userNSObj()
obj.myObject = data.myAttribute
myArray.append(obj)
catch
print(error)
【讨论】:
以上是关于如何检查CoreData是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章