TI千秋の未来永劫適正価格で囲い込み
前: 制作会社的な粗利の検討 | TI千秋の未来永劫適正価格で囲い込み | 次: 行政書士会でセミナーこうしやりまする
プログラミングでおおはまり中
2009年8月 7日
まったく前に進まなくなりました!
どこで質問しようかと思っているのですが、まだAppleの正式な開発者コミュニティも
稼動していないようですし・・・
ということで、どこにもぶつけられない苦悩をここにそのまま書きます。
プログラマーっちゅうのはそんなことしてんだなぁとでも思って眺めてください(笑)
Objective-C のコードで、NSString のオブジェクトに文字列としてゲームデータを
持たせています。
これを同じクラスのどのメソッドで参照しても正常に値を取得できるのですが、
なぜか、NSTimerでメッセージを送ったメソッドだとEXC_BAD_ACCESSでアプリが
停止してしまいます。
しかも、この現象、NSStirngの文字列定義を string = @"****"; で定義したとき
だけ発生しない、というなんともいえない感じです。
ヘッダファイルにこんな感じ
NSString *testString;
NSTimer *gameTimer
プログラムはこんな感じ
-(void) stageStart
{
testString = @"test"; //これは正常に動く
//testString = [NSString stringWithFormat:@"test"]; //これはエラー終了
//testString = [self stringMake]; //ほかのメソッドから受け取ってもエラー
gameTimer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(oneFrame:)
userIngo:nil
repeat:YES];
}
- (void)oneFrame:(NSTimer *)gameTimer
{
NSLog(testString); //NSStringの文字列設定方法により、エラー発生
}
(上記は手書きで移していますので、スペルミスなどがあったとしても
気にしないでください。)
・文字列の設定方法により、NSTimerから呼び出された場合のみエラーが
発生したり、しなかったり。
・NSTimerから呼び出していないメソッドからだと、どの方法でも問題なく
処理される。
・NSTimerから呼び出されるメソッドから、別のメソッドにメッセージを送って
NSStringの値を読み出そうとしてもエラーになる。
という感じです。
まったくわからないです。。
投稿者 senshu : 2009年8月 7日 19:36
このエントリーのトラックバックURL:
http://hayakei.jp/mt/mt-tb.cgi/417


