0
NSManagedObjectを削除しようとしました。NSManagedオブジェクトを削除する
let app = UIApplication.shared.delegate as! AppDelegate
let context = app.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "MyEnt")
request.predicate = NSPredicate(format: "SELF = %@", EnttoDelete.objectID)
request.returnsObjectsAsFaults = false
do {
let results = try context.fetch(request)
if results.count > 0 {
for result in results as! [NSManagedObject] {
print ("Ent found")
context.delete(result)
do {
try context.save()
} catch {
print("failed to delete")
}
}
}
} catch {
print ("Error in do")
}
}
あなたはEntitieは(EnttoDelete)が削除されないデ私が持っている参照持っ及びそのためにはID(EnttoDelete.objectIDが)です: は、これは私のコードです。 今、私はstackoverflowでも研究していますが、これはうまくいくと思います。しかし、そうではありません。 希望するエンティティを削除するにはどうすればよいですか?私はそれがより良い解決策だと思っ
let app = UIApplication.shared.delegate as! AppDelegate
let context = app.persistentContainer.viewContext
var thisID: NSManagedObjectID = (thatLand?.objectID)!
let object = context.object(with: thisID)
context.delete(object)
do {
try context.save()
} catch {
print("failed to delete")
}
:
正確には動作しません。 'results'は内容を持っていますか?そうでなければ、あなたの要求や述語に問題があります。 – Koen
はい。私は他のエンティティーとまったく同じことをして、それはうまくいった。違いは、objectIDではなく属性を使用したことです。この場合は動作しません....しかし、私がコピーしたコードを使用して、それは動作します。 –
'existingObjectWithID'を試して、特定のIDを持つenitiyを取得し、それを削除することもできます。 – Koen