访问NSManagedObject的属性时EXC_BAD_ACCESS KERN_INVALID_ADDRESS

时间:2017-05-26 22:17:59

标签: ios swift core-data nsmanagedobject

在我的NSManagedObjects中,我有一些属性,A)我不想要或不需要存储,B)只计算一次,只有在需要时才能重复计算(因为它们有点贵)。

以下是我要说的代码:

public class Sample: NSManagedObject {

    @NSManaged public var id: NSNumber
    @NSManaged public var anotherProperty: String?
    var orderedCustomObjects : Array<CustomObject>?

    func getOrderedCustomObjects() -> [CustomObject] {
        // application crashes on this line.
        if (orderedCustomObjects == nil) {
            // compute the custom object array here.
        }
        return orderedCustomObjects!
    }
}

public class CustomObject {
    var price : String?
    var quantity : String?
}

我在一个看似无害的线路上遇到以下崩溃,该线路在计算之前检查该属性是否为零:

崩溃:com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000048

任何帮助都会被理解为什么我可能会因此而崩溃。

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,答案是该对象在另一个线程上被删除,导致它在主线程上被释放。