- 締切済み
[objective-C]配列について
はじめまして。 objective-C、cocos2dについての質問です。 iPhoneアプリを勉強しながら作り始めたのですが詰まってしまい、できればご助力をお願いしたいと思い質問させていただきました。 cocos2dというフレームワークを使用し簡単なRPGを作りたいと考えております。 そこでキャラクターのステータスを配列に格納し、どのシーンからも参照したいのですが、どうしてもうまくいきません。 別クラスでインスタンス変数を作り、それを利用して配列を作成する方法で実装しようとしており、実際のコードは以下の通りになります。 ---------------------------------- <Character.h> @interface Character : NSObject{ NSInteger characterStateAtk_; ・(Def、Hpなど) ・ } @property (nonatomic, assign) NSInteger characterStateAtk; ・ ・ @end <Character.m> #import "Character.h" @implementation Character @synthesize characterStateAtk = characterStateAtk_; ・ ・ @end キャラクターステータス生成部分 <CreateScene.h> @interface CreateScene : CCScene { NSMutableArray* characterStateArray_; } @property (nonatomic, assign) NSMutableArray *characterStateArray; @end <CreateScene.m> @interface CreateScene() - (void) pressReloadButton:(id)sender; - (void) createCharacterState; @end @implementation CreateScene @synthesize characterStateArray = characterStateArray_; - (void) dealloc{ [self.characterStateArray release]; [super dealloc]; } - (void) createCharacterState{ self.characterStateArray = [NSMutableArray array]; Character* priState = [[[Character alloc]init] autorelease]; priState.characterStateAtk = random() % 5 + 5; ・ ・ [self.characterStateArray addObject:priState]; } (その他の処理) - (void) pressReloadButton:(id)sender{ [self createCharacterState]; (ここでcharacterStateArrayを取得して表示したい) } ---------------------------------- 最初は、 NSInteger x; x = [[self.characterStateArray objectAtIndex:0]intValue]; で取得しようとしたのですがエラーとなり実行できませんでした。 (調べていくうちにobjective-Cでは配列の中身はオブジェクトしか使えないという事を知りました) プログラム中の(ここでcharacterStateArrayを取得して表示したい)の部分について、実装方法や考え方についてご助言をいただけないでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
「エラーとなり実行できませんでした」ですが, 「どのようなエラーとなったのか」はわかりませんか?
補足
説明足らずでした、申し訳ありません。 - (void) pressReloadButton:(id)sender を割り当てたボタンを押した所、その他の処理(フレームレート表示など)もすべて止まり、シュミレーターが落ちてしまいます。 明確なエラーメッセージは無く、main.mの int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); がハイライトされており、メッセージは, Thread1 : Program received signal: "SIGABRT" となっております。 もしまだ説明不足な所があれば、ご指摘いただければ幸いです。 よろしくお願いします。