'objc_ownership'属性参数不受支持:'assign'

时间:2014-01-17 00:01:37

标签: objective-c automatic-ref-counting

在Xcode中,在启用ARC的项目中,任何尝试创建指向任何对象的弱指针都会产生以下警告:

不支持

_'objc_ownership'属性参数:'assign'_

测试显示受影响的变量被视为“强”。

Screenshot

Screenshot

此警告代表什么?如何解决潜在问题?

注意:我知道大多数人在ObjC中使用领先的存储限定符声明弱指针。出于这个问题的目的,请假设 NSObject * __ weak foo, __weak NSObject * foo将生成警告。

2 个答案:

答案 0 :(得分:4)

显示的代码看起来不错。您的代码中的其他地方可能存在问题。

我的猜测是有人在你包含的一个头文件中写了这个:

#define weak assign

生成这个:

% cat test.m
#define weak assign
id __weak x;
% clang -fobjc-arc test.m
test.m:2:4: warning: 'objc_ownership' attribute argument not supported: 'assign'
      [-Wignored-attributes]

答案 1 :(得分:0)

为什么不这样做:

__weak typeof(self) weakSelf = self;