私の最初のObjective-cgoであるiPhoneCoco2dゲームのいくつかのdiffクラスで問題を特定しました。私のセッターは機能していないようです!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
}
}