使用ARC隐式转换指向objective-c指针的间接指针

时间:2012-01-14 17:36:00

标签: iphone objective-c ios

我正在开发一个使用ARC的项目,我现在遇到了一段已经存在的代码。

继承人代码:

- (id)initWithError:(NSError **)error
{
    if ((self = [super init]))
    {
        errorPointer =  error; //Getting error here
    }

    return self;
}

我收到一条错误消息:

  

ARC禁止将指向Objective-c指针的间接指针隐式转换为'NSError'。

我该怎么做才能解决这个问题?我试过做过桥接演员,但是没有用。 任何帮助表示赞赏。

哦,只是为了澄清,在.h文件中这就是我声明变量errorPointer的方式:

  

NSError * errorPointer;

谢谢!

2 个答案:

答案 0 :(得分:10)

应该是

errorPointer = *error; // no error here

这两个变量的间接程度不同(简单地说,它们的声明中的星数不同)。您需要在*前添加error,以抵消*的额外errorPointer

答案 1 :(得分:1)

errorPointer和错误类型不匹配。

根据您的代码,您的error参数似乎应该声明为NSError *