2011年8月21日日曜日

@synthesizeの代名記法

cocos2dのObjective-Cのソースを眺めていて、@synthesizeで初めて知った記法がありました。

CCTexture2Dのヘッダファイルでは、こんな感じに定義されております。
@interface CCTexture2D : NSObject
{
	GLuint name_;
	CGSize size_;
	    :
	    :
}
/** texture name */
@property(nonatomic,readonly) GLuint name;

/** returns content size of the texture in pixels */
@property(nonatomic,readonly, nonatomic) CGSize contentSizeInPixels;
おやっ?と思ったのは、変数が name_ で定義されているのに、@property が name で定義されていたからです。

実装の方を見ると、こんな感じになっておりました。
@synthesize contentSizeInPixels = size_, name = name_;
@synthesizeに=を付けて代名させることが出来るとは知りませんでした。
いつから出来たのでしょうか。最初から?

ちなみにヘッダファイルに定義されている、下の2つ目の nonatomic ってなんでしょうか?
何か意味があるのかな? 単なる記述ミス?
@property(nonatomic,readonly, nonatomic) CGSize contentSizeInPixels;

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...