Objective c属性setter不起作用

时间:2012-06-14 08:21:44

标签: objective-c cocos2d-iphone

我现在在我的iPhone Coco2d游戏的几个差异类中发现了一个问题,我的第一个Objective-c go。我的二传手似乎没有工作!如果我在设置它之后尝试访问属性为NULL(如果是Stringed)或者我得到一个致命的错误访问异常,我一定做错了,继承我的代码:

@interface Character : CCNode 
    {
        CCSprite* sprite;
        int width;
        int height;
    }
    @property (retain) CCSprite* sprite;
    @property int width;
    @property int height;
@end

和实施:

@implementation Character

@synthesize sprite;
@synthesize width;
@synthesize height;

-(id) init
{
    if((self=[super init])) {
        [self setSprite :[CCSprite spriteWithFile:@"character.png"]];
        [self setWidth:28];
        [self setHeight:28];
        NSLog(@"About to try get height...");
        NSLog([self height]); //bad access exception
    }
}

1 个答案:

答案 0 :(得分:4)

这是一个格式不正确的日志声明

NSLog(@"Height :%d", [self height]);

NSLog查找要打印的字符串,你给它一个无法更改为对象的int