2014-03-24 41 views
9

我有方法,采用间接指针作为参数,然后,如果错误,将其设置为错误对象。我试图尽可能多地发出警告。但其中之一 - Implicit ownership types on out parameters - 以此方法生成警告:如何解决警告'没有明确的所有权'

- (id)doWithError:(NSError **)error { 
    ... 
} 

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

回答

9

可以通过声明你的方法

- (id)doWithError:(NSError * __autoreleasing *)error { 
    // ... 
} 

__autoreleasing所有权限定符隐含地假设为“输出参数”修复警告 (见Clang/ARC documentation“4.4.2间接参数”), 因此明确添加它不会更改代码。

+0

工作!谢谢!但不知何故,它不适用于另一种方法' - (id)doWithItemTags:(NSMutableDictionary * __autoreleasing *)itemTags' – Ossir

+0

@Ossir:我不能再现这个问题。 ' - (id)doWithItemTags:(NSMutableDictionary * __autoreleasing *)itemTags'不会导致编译器警告我,甚至没有'-Weverything'。 –

+0

我已经清理过它并建立了几次,警告仍然存在:https://www.dropbox.com/s/bg62g4vfjk340z1/Screenshot%202014-03-24%2015.00.49.png我将尝试删除派生的数据 – Ossir

相关问题