访问空属性时,CoreData EXC_BAD_ACCESS(代码= 1,地址= 0x0)

时间:2014-11-19 16:45:56

标签: ios core-data swift nsmanagedobject

当我在创建NSManagedObject后尝试访问一个空属性时,它给了我一个EXC_BAD_ACCESS (code=1, address=0x0)

let m = NSEntityDescription.insertNewObjectForEntityForName(entityName, inManagedObjectContext: context) as MyManagedEntity

println(m.numberProperty) // this is OK
println(m.stringProperty) // this gives me the exception
println(m.dateProperty) // this gives me the exception

任何想法如何解决?

编辑:

在投射到EXC_BREAKPOINT(code=EXC_I386_BPT, subcode-0x0)

时,我的测试中也获得MyManagedEntity

1 个答案:

答案 0 :(得分:2)

您是否在XCDataModel中为属性指定了默认值?

如果生成NSManagedObject子类,则可以通过在声明中添加问号将任何属性更改为可选:

@NSManaged var stringProperty: String?
@NSManaged var dateProperty: NSDate?

在其他地方你可以这样做:

println(m.stringProperty?)
if m.stringproperty != nil {
// do stuff
}