0

ARC 以外の cocos2d プロジェクトを開始しました。

メソッド内でEXC_BAD_ACCESSプライベートCCLabelBMFontメンバーにアクセスしようとすると、エラーがスローされます。しかし、どういうわけか、メソッドでアクセスできません。 その子にアクセスするにはどうすればよいですか? 以下に簡単な例を示します。performSelector:withObject:afterDelay:
titledoSomeInitdoSomething

ああ

@interface IntroLayer : CCLayer {

}
@property (nonatomic,strong) CCLabelBMFont *_title;
@end

これも試してみました...運が悪い。 ああ

@interface IntroLayer : CCLayer {
   CCLabelBMFont *_title;
}


午前

@implementation IntroLayer
@synthesize _title;
 .
 .
- (void)doSomeInit {
    _title = [CCLabelBMFont labelWithString:@"Test Label" fntFile:"blah.fnt"];
    [self performSelector:@selector(doSomething) withObject:nil afterDelay:5];
}

- (void)doSomething {
    int count = 0;
    for (CCSprite* la in _title.children) { //<<<<<EXC_BAD_ACCESS ERROR THROWS HERE!!!
        la.opacity = 0;
    }
    [self addChild: _title];
}


次の関連する質問はこれです:
私は変更しました
_title = [CCLabelBMFont labelWithString:@"Test Label" fntFile:"blah.fnt"];

_title=[CCLabelBMFont labelWithString:@"Test Label" fntFile:"blah.fnt"];  
[_title retain]; //this fixes EXC_BAD_ACCESS error. 

ただし:
質問 2: 保持メソッドでメモリ リークが発生していませんか?
たぶん、オーバーライドされた-(void)onExitメソッドでリリースする必要がありますか?

4

1 に答える 1