1

UILabel をセットアップしましたが、ゲーム ループのテキストをスコアである文字列に設定すると (ループごとにテキストがリセットされるため)、アプリがクラッシュします。

これは私が得るエラーです:

0x15560b0: cmpl (%eax)、%ecx スレッド 1

ブレークポイントには次のように書かれています。

EXC_BAD_ACCESS(コード=1、アドレス=0x67b30064

これがUILabelの設定方法です(initメソッドで):

//SET UP THE SCORE LABEL HERE
scoreLabel = [[UILabel alloc] init];
scoreString = [NSString stringWithFormat:@"%d", score];
[scoreLabel setFont: [UIFont fontWithName: @"TimesNewRoman" size: 10.0f]];
[scoreLabel setFrame: CGRectMake(262, 250, 100, 40)];
[scoreLabel setBackgroundColor:[UIColor clearColor]];
[scoreLabel setTextColor: [UIColor clearColor]];
[scoreLabel setTextColor: [UIColor whiteColor]];
scoreLabel.transform = CGAffineTransformMakeRotation(89.53);
[self addSubview: scoreLabel];
//[scoreLabel setText: scoreString];

ありがとう!

4

3 に答える 3

5

メイン キューからラベルの更新を行っていますか? メイン キューで更新をディスパッチするまで、これらのクラッシュが発生しました。

dispatch_async(dispatch_get_main_queue(), ^{
    self.lblSyncProgress.text = @"Some string";
});
于 2014-01-14T13:05:15.097 に答える
2
//in your .h file
UILabel *scoreLabel;
NSString *scoreString;


//in your .m file    
//SET UP THE SCORE LABEL HERE 
scoreLabel = [[UILabel alloc] init];
 [scoreLabel setFont: [UIFont fontWithName: @"TimesNewRoman" size: 10.0f]];
 [scoreLabel setFrame: CGRectMake(262, 250, 100, 40)];
 [scoreLabel setBackgroundColor:[UIColor clearColor]];
 [scoreLabel setTextColor: [UIColor clearColor]];
 [scoreLabel setTextColor: [UIColor whiteColor]];
 scoreLabel.transform = CGAffineTransformMakeRotation(89.53);
 [self addSubview: scoreLabel]; 


//In your update method
 scoreString = [NSString stringWithFormat:@"%d", score];
scoreLabel.text = scoreString;
于 2012-08-18T21:22:27.150 に答える
-1

私はあなたが持っていたあなたのコードに気づきました

scoreString = [NSString stringWithFormat:@"%d", score];

「スコア」が文字であることを確認してください。そうでない場合は、これを見てください

于 2012-08-18T21:23:59.740 に答える