文字列には copy を使うこと
NSStringプロパティには、必ず copy 属性を宣言するべきです。
これは論理的には、NSString のセッタには必ず、retain の代わりに copy を使わなければならない、というルールに従ったものです。
アトミック性
プロパティにはオーバーヘッドがあることを認識しておいてください。デフォルトでは、同期のセッタとゲッタはすべてアトミックになります。そのため、セットとゲットの呼び出しには同期オーバーヘッドがかなりあります。アトミック性が必要ないなら、プロパティを nonatomic と宣言しておいてください。
Delegate パターンについても以下を参考にする。
Delegate パターン
Delegate オブジェクトを retain するべきではない。
<-- 追記 -->
命名規則
プロパティに対応するインスタンス変数名は、アンダースコア(_)で終わらなければなりません。プロパティ名は、対応するインスタンス変数名から最後のアンダースコア(_)を取り除いたものにするべきです。
@interface MyClass : NSObject {
@private
NSString *name_;
}
@property(copy, nonatomic) NSString *name;
@end
@implementation MyClass
@synthesize name = name_; // インスタンス名を隠蔽できる。
@end
// ------------------------------------
NSLog("%@", self.name);
-(void) dealloc{
self.name = nil;
[super dealloc];
}
参考
Google Objective-c スタイルガイド 日本語訳
0 件のコメント:
コメントを投稿