0

xcode4.2 で FMDB テスト デモを使用すると、すべて問題ありません。しかし、xcode 3.2.6 でデモを実行すると、「unknown property attribute 'atomic'」というエラーが表示されます。

        __unsafe_unretained id _delegate;

    NSUInteger          _maximumNumberOfDatabasesToCreate;
}

@property (atomic, retain) NSString *path;
@property (atomic, assign) id delegate;
@property (atomic, assign) NSUInteger maximumNumberOfDatabasesToCreate;

このエラーを修正するにはどうすればよいですか?

4

3 に答える 3

1

私が覚えている限り、「アトミック」属性はclangでのみサポートされています。gcc を使用する場合、「非アトミック」として宣言されていないすべてのプロパティは、デフォルトで「アトミック」です。

于 2013-01-23T15:11:01.690 に答える
0

atomic__unsafe_unretainedLLVM 3.0 で導入されました。Xcode 3.2.6 を使用している場合は、これらのキーワードをサポートしていない古いバージョンのコンパイラを使用しています。

atomicプロパティはデフォルトでアトミックであるため、キーワードを安全に削除できます。も削除 します。これは、プロパティ宣言__unsafe_unretainedとほぼ同等であるためです。assign

于 2013-01-23T15:11:50.347 に答える
0

Clang のプリプロセッサ マクロを使用atomicして、コンパイラで使用できるかどうかを判断できます。キーワードがサポートされていない場合は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
于 2014-03-06T23:13:43.767 に答える