如何修复警告“没有明确的所有权”
Posted
技术标签:
【中文标题】如何修复警告“没有明确的所有权”【英文标题】:How to fix warning 'no explicit ownership' 【发布时间】:2014-03-24 11:36:54 【问题描述】:我有将间接指针作为参数的方法,然后,如果出错,将其设置为错误对象。我正在尝试打开尽可能多的警告。但其中之一 - Implicit ownership types on out parameters
- 在此方法中生成警告:
- (id)doWithError:(NSError **)error
...
如何修复代码以消除警告?
【问题讨论】:
【参考方案1】:您可以通过将方法声明为来修复该警告
- (id)doWithError:(NSError * __autoreleasing *)error
// ...
__autoreleasing
所有权限定符隐式假定用于“out-parameters”
(参见Clang/ARC documentation 中的“4.4.2 间接参数”),
因此显式添加它不会更改代码。
【讨论】:
行得通!谢谢!但不知何故,它不适用于另一种方法-(id)doWithItemTags:(NSMutableDictionary * __autoreleasing *)itemTags
@Ossir:我无法重现该问题。 -(id)doWithItemTags:(NSMutableDictionary * __autoreleasing *)itemTags
不会对我造成编译器警告,即使是 -Weverything
。
我已经清理并构建了几次,警告仍然存在:dropbox.com/s/bg62g4vfjk340z1/…我会尝试删除派生数据
抱歉,由于我的注意力不集中,在正确清除 Xcode 起点指向该参数后,方法声明中多了一个 NSMutableDictionary **
=)以上是关于如何修复警告“没有明确的所有权”的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 Hadoop 警告:在 Ubuntu 上发生非法反射访问操作错误