Mr.*_*ous 1 autorelease automatic-ref-counting
Sending '__autoreleasing id *' to parameter of type '__unsafe_unretained id *' changes retain/release properties of pointer
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题!
我自己刚刚开始使用ARC,但我遇到了同样的错误,所以也许我可以尝试帮助解决这个问题.
__unsafe_unretained用于支持iOS 4+时使用.对于iOS 5.0+ __weak应该使用.不同之处在于__weak指针归零.意思是,当没有其他任何东西对该对象有引用并且它被解除分配时,__weak指针将被设置为nil.因此,如果您参考它,您将不会EXC_BAD_ACCESS崩溃.
与其他任何内容(如对象类型和限定符)一样,对于ARC中的Objective-C对象,您现在必须指定生命周期.这就是ARC知道如何合成保留/释放调用.
如果您没有指定任何默认值__strong.
这些生命周期说明符必须匹配.
在你的情况下,你正在分配一个指针__unsafe_unretained到另一个指针__strong.
要解决,请将接收指针更改为__unsafe_unretained.这可能意味着将生命周期说明符添加到方法签名中.例如:
- (void)myMethod:(__unsafe_unretained NSString *)aString
{
}
Run Code Online (Sandbox Code Playgroud)
别忘了这__unsafe_unretained就像它的同名所描述的那样.它不安全,不保留!所以你最好在其他地方安全地保留那个对象,而不是在它被释放之后在这样的方法中引用它.您只需将此用于代理中的弱引用,例如父/子关系.对于其他一切,特别是您应该使用的正常Objective-C ivars __strong.
| 归档时间: |
|
| 查看次数: |
2641 次 |
| 最近记录: |