我有一个问题,我无法完全删除存储在核心数据实体中的数据。我将用户名和密码存储在登录系统中。
我知道使用.deleteObject()方法,但说实话我不确定这是否真的有效,因为我做一个print语句来检查控制台存储的内容并且它似乎没有被删除
这是我的代码:
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context: NSManagedObjectContext = appDelegate.managedObjectContext
//add user to core data
let user = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: context)
do{
try context.save()
}catch{
print("there was an error saving to core data")
}
do{
let request = NSFetchRequest(entityName: "User")
let results = try context.executeFetchRequest(request)
if results.count > 0{
for item in results as! [NSManagedObject]{
let username = item.valueForKey("username")
let password = item.valueForKey("password")
context.deleteObject(item)
print("aawawaw \(username), \(password)")
}
}
}catch{
print("there was an error")
}
答案 0 :(得分:0)
您正在打印存储在let常量中的值。 尝试在for循环中实现
context.deleteObject(item)
let username = item.valueForKey("username")
let password = item.valueForKey("password")
print("aawawaw \(username), \(password)")
答案 1 :(得分:0)
您并没有真正从CD中删除对象。
你应该:
你实际做的是不同的: