Zim*_*nji 30 objective-c ios ios5 automatic-ref-counting
在更新我的一些代码以与iOS 5 SDK兼容时,我试图通过在Xcode中使用"转换为Objective-C ARC"来重构我的代码并收到错误.我的.h文件中的实例变量发生错误.
NSError **_error;
Run Code Online (Sandbox Code Playgroud)
错误显示"指向非const类型'NSError*',没有明确的所有权." 我该如何解决这个问题?
tap*_*api 57
您可以使用" 转换为ARC发行说明"中描述的生命周期限定符之一
对于NSError**,您使用__autoreleasing,因此Nikolai提供的示例将如下所示
@interface Foo : NSObject
{
NSError * __autoreleasing *error;
}
Run Code Online (Sandbox Code Playgroud)
语法有点奇怪,你应该遵循Nikolais的建议,但如果你确定NSError**是你想要的,那么这应该有效.
Nik*_*uhe 18
NSError在实例变量中存储对象时,必须将其声明为简单指针:
@interface Foo : NSObject
{
NSError *_errror;
}
Run Code Online (Sandbox Code Playgroud)
NSError **仅用于间接将NSError方法中的对象返回给调用者.将它存储在实例变量中(可能)是一个错误.
| 归档时间: |
|
| 查看次数: |
18039 次 |
| 最近记录: |