1

これを書くことの違いは何ですか?

@interface Monster : CCSprite

@property (nonatomic, assign) NSString *life;
@property (nonatomic, assign) int color;

- (id)initWithFile:(NSString *)file hp:(int)life:(NSString *)color;

@end

この :

@interface Monster : CCSprite{
    NSString *life;
    int color;
}
- (id)initWithFile:(NSString *)file hp:(int)life:(NSString *)color;

@end

よろしくお願いいたします。

4

1 に答える 1

2

簡単な答え:プロパティを追加すると、それ自体を呼び出したクラスがそのプロパティにアクセスできます。例

LevelClass を割り当てて Monster クラスを初期化すると、このように彼のプロパティにアクセスできます

Monster *monsterIstance = [[Monster alloc] init];
NSLog(@" monster life = %@", monsterIstance.life);

@property と @synthesize を使用すると、自動的に生成setおよびgetコーディングされます。

self.life = @"text";

に等しい

[self setlife: @"text"];

長い答え: when-to-use-properties-in-objective-cwhy-would-you-use-an-ivar を確認してください

また、アーク/プロパティなどについて多くのことを説明する Ray Wenderlich サイトのこのチュートリアルも読む必要があります。

于 2013-05-14T10:52:00.683 に答える