如何修复警告'没有明确的所有权'

Oss*_*sir 10 xcode warnings pointers objective-c

我有方法,将间接指针作为参数,然后,如果错误,将其设置为错误对象.我正试图打开尽可能多的警告.但其中一个 - Implicit ownership types on out parameters- 在此方法中生成警告:

- (id)doWithError:(NSError **)error {
    ...
}
Run Code Online (Sandbox Code Playgroud)

如何修复代码以删除警告?

Mar*_*n R 12

您可以通过声明方法来修复该警告

- (id)doWithError:(NSError * __autoreleasing *)error {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

__autoreleasing所有权限定符隐含地假设为"out参数"(见中的"4.4.2间接参数" 锵/ ARC文件),因此将它明确不改变代码.