Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 间接指针到带圆弧的objective-c指针的隐式转换_Iphone_Objective C_Ios - Fatal编程技术网

Iphone 间接指针到带圆弧的objective-c指针的隐式转换

Iphone 间接指针到带圆弧的objective-c指针的隐式转换,iphone,objective-c,ios,Iphone,Objective C,Ios,我正在从事一个使用ARC的项目,我在使用已有的一段代码时遇到了问题 代码如下: - (id)initWithError:(NSError **)error { if ((self = [super init])) { errorPointer = error; //Getting error here } return self; } 我收到一个错误,上面写着: ARC不允许将间接指针隐式转换为指向“N错误”的objective-c指针 我应

我正在从事一个使用ARC的项目,我在使用已有的一段代码时遇到了问题

代码如下:

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

    return self;
}
我收到一个错误,上面写着:

ARC不允许将间接指针隐式转换为指向“N错误”的objective-c指针

我应该如何解决此问题?我试过做桥牌,但没有成功。 感谢您的帮助

哦,为了澄清一下,在.h文件中,我是这样声明变量errorPointer的:

n错误*错误指针


谢谢

errorPointer和error的类型不匹配

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

它应该是

errorPointer = *error; // no error here

这两个变量在间接程度上有所不同(简单地说,它们声明中的恒星数量不一样)。您需要在
错误
前面添加
*
以抵消
错误指针

@AdamW的额外
*
,绝对正确!因为这个名字,我感到困惑。谢谢只是稍微扩展一下,使用双间接参数(
NSError**
)的唯一原因是,如果需要在该init方法中分配错误并使其可供调用方使用。是的,这是Cocoa方法中的常见模式。许多Cocoa框架方法通过传递给该方法的引用
NSError*
参数返回错误(如果有)。@AndrewMadsen肯定会这样做……但在这种情况下,他显然不想这样做,因此我建议只更改参数的类型。