web-dev-qa-db-ja.com

Objective Cクラスでブール型プロパティを設定する方法

Objective Cクラスでブール型プロパティを使用する方法、私はそれを次のようにしました:

@property (nonatomic, copy) BOOL *locationUseBool;

しかし、それは次のエラーを出します:

'copy'属性を持つプロパティは、オブジェクトタイプである必要があります。

宣言の正しい方法は何ですか?

23
Firdous

この方法でも宣言できます。

@property (assign) BOOL locationUseBool;

基本的に、非アトミックと言い、@ synthesizeを使用してアクセサーを生成する場合、複数のスレッドが一度にプロパティを変更または読み取ろうとすると、問題が発生する可能性があります。部分的に書き込まれた値または過剰に解放された/保持されたオブジェクトを取得できます

マルチスレッドプログラムでは、アトミック操作は部分的に中断できませんが、非アトミック操作は中断できます。

27
Kamleshwar
@property (nonatomic, assign) BOOL locationUseBool;

アスタリスク、コピー、保持なし。

25
bneely

これは私のために働いた。

@property (nonatomic) BOOL locationUseBool;

プロパティ宣言にアスタリスク*記号はありません。また、 'assign'の使用はオプションです。

1