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 一起使用,你就会自动生成setget编码。

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 回答