我正在开发一个使用ARC的项目,我现在遇到了一段已经存在的代码。
继承人代码:
- (id)initWithError:(NSError **)error
{
if ((self = [super init]))
{
errorPointer = error; //Getting error here
}
return self;
}
我收到一条错误消息:
ARC禁止将指向Objective-c指针的间接指针隐式转换为'NSError'。
我该怎么做才能解决这个问题?我试过做过桥接演员,但是没有用。 任何帮助表示赞赏。
哦,只是为了澄清,在.h文件中这就是我声明变量errorPointer的方式:
NSError * errorPointer;
谢谢!
答案 0 :(得分:10)
应该是
errorPointer = *error; // no error here
这两个变量的间接程度不同(简单地说,它们的声明中的星数不同)。您需要在*
前添加error
,以抵消*
的额外errorPointer
。
答案 1 :(得分:1)
errorPointer和错误类型不匹配。
根据您的代码,您的error
参数似乎应该声明为NSError *
。