在我的应用程序中,我设置了一个名为“Finances”的核心数据实体。目前它有两个属性:金钱和净 Assets 。
我希望编写一个函数,每次调用它时,都会删除特定实体的所有结果。一个例子可能是:
func resetAttribute(attribute: String) {
}
PS:我在互联网上发现了一个函数,该函数被设计为仅删除与字符串匹配的属性的特定元素。我按以下方式修改了代码:
func resetTest() {
if let dataAppDelegatde = UIApplication.shared.delegate as? AppDelegate {
let mngdCntxt = dataAppDelegatde.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "ApplicationFinances")
let predicate = NSPredicate(format: "money != %@", "vdavduabsdpansuryiubj")
fetchRequest.predicate = predicate
do {
let result = try mngdCntxt.fetch(fetchRequest)
print(result.count)
if result.count > 0 {
for object in result {
print(object)
mngdCntxt.delete(object as! NSManagedObject)
}
}
} catch{
}
}
}
这意味着如果钱不等于 vdavduabsdpansuryiubj (当然意味着永远不会),它就会删除其他值。但这似乎不起作用。
最佳答案
运行该函数时会发生什么?它会抛出错误吗?或者它打印得很好并且运行得很好,但是当您重新加载核心数据时实际上没有任何反应?如果是这种情况,请尝试添加:
do {
try mngdCntxt.save()
} catch {}
for循环结束后
关于swift - Swift 中的核心数据属性重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48104371/