OOPでの経験はありますが、私はObjective-Cの初心者です。私は次のコードを持っています:Objective-Cオブジェクトの配列
// header files have been imported before this statement...
CCSprite *treeObstacle;
NSMutableArray *treeObstacles;
@implementation HelloWorldLayer {
}
-(id) init
{
// create and initialize our seeker sprite, and add it to this layer
treeObstacles = [NSMutableArray arrayWithObjects: nil];
for (int i=0; i<5; i++) {
treeObstacle = [CCSprite spriteWithFile: @"Icon.png"];
treeObstacle.position = ccp(450-i*20, 100+i*20);
[self addChild:treeObstacle];
[treeObstacles addObject: treeObstacle];
}
NSLog (@"Number of elements in array = %i", [treeObstacles count]);
return self;
}
- (void) mymethod:(int)i {
NSLog (@"Number of elements in array = %i", [treeObstacles count]);
}
@end
最初のNSLog()ステートメントは "配列の要素数= 5"を返します。問題は、メソッド "mymethod"を呼び出すときにtreeObstaclesがファイルスコープ変数であるにもかかわらず、EXC_BAD_ACCESS例外が発生することです。
誰でもお手伝いできますか?
どうもありがとう クリスチャン
を初期化しないのだろうか?それはxlc0212の答え@重要 –
だ上のスポットですObjective-Cを初めてお使いになる場合は、ARCを有効にして起動してプロジェクトを構築することから始めましょう。少し後でメモリ管理について知ることができますか? – deanWombourne
はい、あなたは正しいです。実際、私は不正行為をしていました。メソッドの名前は、Cocos2D Frameworkで使用されているmymethod()ではなくnextFrame()です。 initメソッドのどこかで[self nextFrame:1]を呼び出すと、それは期待どおりに動作します。 – itsame69