默认情况下,属性为原子

时间:2011-11-27 20:42:35

标签: objective-c properties compiler-errors llvm compiler-warnings

我正试图摆脱CLANG / LLVM 3.0给我的恼人警告。我在我的对象中设置了以下ivar:

bool preloaded;

以下属性声明:

@property(readonly) bool preloaded;

以下综合调用:

@synthesize preloaded;

目前,编译器抱怨:

  

默认情况下,属性为原子

如果我更改属性声明以添加“atomic”:

@property(atomic,readonly) bool preloaded;

它也抱怨:

  

错误:预期'atomic'之前的属性属性

所以看来如果我这样做我该死的,如果我不这样做该死的......我有什么遗失的吗?

1 个答案:

答案 0 :(得分:9)

您的项目设置中似乎已启用隐式原子目标-C属性 LLVM编译器警告。关闭此功能将删除警告。

如上所述,atomic不是有效的关键字,只是由于缺少nonatomic而暗示。来自Apple的Declared Properties documentation

  

您可以使用此属性指定访问者方法不是原子的。 (没有关键字来表示原子。)