使用int关键字或使用@property(非原子,赋值)声明int有什么区别?

时间:2013-05-14 10:14:45

标签: cocos2d-iphone

我只是想知道写这个有什么区别:

@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

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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网站的 this 教程,它将解释很多关于弧/属性等的内容