Ios 未知属性';原子';

Ios 未知属性';原子';,ios,xcode,fmdb,Ios,Xcode,Fmdb,当我在xcode4.2中使用FMDB测试演示时,一切都很好。但是当我在xcode 3.2.6中运行演示时,它给出了错误:“未知属性‘原子’” 如何修复此错误?据我所知,只有clang支持“原子”属性。使用gcc时,默认情况下,未声明为“非原子”的每个属性都是“原子的”。原子的和不安全的是在LLVM 3.0中引入的。如果您使用的是Xcode 3.2.6,那么您使用的是不支持这些关键字的较旧版本的编译器 您可以安全地删除原子的关键字,因为默认情况下属性是原子的;还可以删除\uuuuuunsafe\u

当我在xcode4.2中使用FMDB测试演示时,一切都很好。但是当我在xcode 3.2.6中运行演示时,它给出了错误:“未知属性‘原子’”


如何修复此错误?

据我所知,只有clang支持“原子”属性。使用gcc时,默认情况下,未声明为“非原子”的每个属性都是“原子的”。

原子的
不安全的
是在LLVM 3.0中引入的。如果您使用的是Xcode 3.2.6,那么您使用的是不支持这些关键字的较旧版本的编译器

您可以安全地删除
原子的
关键字,因为默认情况下属性是原子的;还可以删除
\uuuuuunsafe\uunrepaired
,因为它大约相当于属性声明中的
assign

您可以使用它来确定编译器中是否有
原子
。如果不支持
atomic
关键字,则可以安全地忽略它,因为atomic是隐式行为

#if __has_feature(objc_atomic)
@property (atomic, retain) NSString *path;
@property (atomic, assign) id delegate;
@property (atomic, assign) NSUInteger maximumNumberOfDatabasesToCreate;
#else
@property (retain) NSString *path;
@property (assign) id delegate;
@property (assign) NSUInteger maximumNumberOfDatabasesToCreate;
#endif

您好,我还没有看到这个属性作为关键字。但是为什么这个演示在我的xcode4.2中运行得很好呢?我的ios sdk是5.0.Xcode 4.x,使用clang编译器,而3.x主要使用gcc编译器。那很简单。您可以尝试在项目设置中更改编译器。很遗憾,我没有安装Xcode 3.x,因此无法为您提供屏幕截图,抱歉。您可以尝试从代码中删除所有出现的“原子”并使用Xcode 3.x编译项目
#if __has_feature(objc_atomic)
@property (atomic, retain) NSString *path;
@property (atomic, assign) id delegate;
@property (atomic, assign) NSUInteger maximumNumberOfDatabasesToCreate;
#else
@property (retain) NSString *path;
@property (assign) id delegate;
@property (assign) NSUInteger maximumNumberOfDatabasesToCreate;
#endif