1

次のようにした場合のデフォルトのプロパティ値は何ですか。

@property (nonatomic) UIButton *myButton;

非ARCプロジェクトで。これは保持または割り当てですか?

4

1 に答える 1

2

あらゆるサイズの非ARCプロジェクトでは、何が保持され、割り当てられ、コピーされたかを正確に確認することが非常に重要であるため、そのデフォルトを使用しないことを強くお勧めします。

読み取り専用、アトミック、非アトミックなど、他の多くの属性を持つ可能性のあるいくつかのプロパティを持つクラスを見ると、読みづらいです。getter=など

#defineを次のような定数ヘッダーに入れるのは完璧ではありませんが

#define ASSIGN nonatomic, assign
#define RETAIN nonatomic, retain

最も一般的な使用法では、プロパティ定義をもう少し明確にすることができるため、最終的にdeallocメソッドの記述に追いついたときに、リリースする必要があるものを確認するための非常に迅速なチェックが行われます。

私のプロパティ定義のほとんどは次のようになります

@property (ASSIGN) Foo* foo; 

また

@property (RETAIN) Foo* foo;

それが私がしていることであり、プロパティ定義のノイズを抑え、手動のメモリ管理アプリのトラブルシューティングや完成時にコードを少し読みやすくします。

于 2012-10-18T22:57:52.903 に答える