在Xcode中,在启用ARC的项目中,任何尝试创建指向任何对象的弱指针都会产生以下警告:
不支持_'objc_ownership'属性参数:'assign'_
测试显示受影响的变量被视为“强”。
此警告代表什么?如何解决潜在问题?
注意:我知道大多数人在ObjC中使用领先的存储限定符声明弱指针。出于这个问题的目的,请假设 NSObject * __ weak foo,或 __weak NSObject * foo将生成警告。
答案 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;