Swift 在访问 NSManagedObject 的 属性 时给出错误线程 1: EXC_BAD_ACCESS(code=1, address=0x0)

Swift Gives error Thread 1: EXC_BAD_ACCESS(code=1, address=0x0) when accessing NSManagedObject's property

我创建 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 编写了无效表达式,请参见下面的快照...

我找不到哪里做错了以及 loginModel 实例可能发生了什么?

从您附加的屏幕截图看来,错误的发生似乎是因为您正试图访问对象的 属性 之后 该对象已被删除。到那时,对象的属性将不再是有效的内存地址。