我初始化变量----> idHERE:
static func createPractitionerRole(fromRoleDict roleDict:[String: AnyObject])->PractitionerRole?{
guard let (nameL, idL) = getRoleNameId(fromRoleDict:roleDict) else {
return nil
}
let roleTypeL = ProTouchRoleType.determineRoleTypeFromProTouchId(idL)
var idHERE = Identifier(withValue: idL, systemParam:Constants.CodeSystem.ProTouch.coding_system_proTouchURL)
print("idHERE \(String(describing: idHERE))")
print("idHERE.value \(String(describing: idHERE.value))")
return PractitionerRoleUtils.createPractitionerRole(withId:idHERE, name: nameL, roleType: roleTypeL)
}
在第一次打印时,它打印出对象:
idHERE Identifier Object- system:Optional(http://www.anyApp.com/any) value:Optional("319/43") use:usual period:nil
但是当我尝试使用时,第二次打印 idHERE.value - 我访问错误EXC_BAD_ACCESS(code = 1,address = 0x30)
这怎么可能?
调试器也显示所有值。
我尝试在发布模式下运行代码,没有任何帮助。
请帮忙!!
Xcode 9 swift4
另外,我将它从let更改为var,看看是否有所作为。
这是在一些复杂的代码之后,但我不确定为什么会产生影响。为什么,如果您初始化某些内容,则无法立即访问这些值。
此外,不会调用deinit。我有一个关于deinit的打印声明,它没有被调用。
谢谢!
答案 0 :(得分:0)
我目前唯一的工作是将发布和调试的优化级别更改为-02。现在它"工作"。快速的人需要看看这个!!