我创建NSManagedObject的子类对象的函数是;
func loginMoldelWithName(name: NSString, atIndexPath indexPath: NSIndexPath) -> LoginModel {
let entity = NSEntityDescription.entityForName("LoginModel", inManagedObjectContext: managedObjectContext!)
var login = LoginModel(entity: entity!, insertIntoManagedObjectContext: managedObjectContext)
login.name = name
login.date = NSDate()
login.rowIndex = indexPath.row as NSNumber
var error: NSError?
if !managedObjectContext!.save(&error) {
println("\(TAG) Could not save \(error), \(error?.userInfo)")
}
return login as LoginModel
}
要删除的那个;
func deleteLoginModel(loginModel: LoginModel) {
println("\(TAG) \(loginModel.name)")
managedObjectContext?.deleteObject(loginModel)
var error : NSError?
if(managedObjectContext!.save(&error) ) {
println("\(TAG) \(error?.localizedDescription)")
}
}
问题发生在哪里;
let loginModel = loginModels[indexPath.row] as LoginModel
println("\(TAG) \(loginModel.name)")
// remove from Core Data
deleteLoginModel(loginModel)
...
当我尝试访问loginModel.name时删除loginModel对象后,我收到错误“Thread 1:EXC_BAD_ACCESS(code = 1,address = 0x0)”
在变量视图中为loginModel编写了无效的表达式,请参阅下面的snaphsot ...
我无法找到我做错的地方以及loginModel实例可能发生的事情?
答案 0 :(得分:0)
从您附加的屏幕截图中看起来发生了错误,因为您试图在删除该对象后访问对象的属性。此时,对象的属性将不再是有效的内存地址。