0

ボタンがクリックされるたびに変数に 1 を追加したいのですが、代わりに 10 桁の数字が表示されます。以下のコードで何が間違っていますか?

-(IBAction)recordData:(id)sender {
int randomNumber;
randomNumber = randomNumber + 1;
NSString *myRandomNumber = [NSString stringWithFormat:@"%i", randomNumber];
NSString *CompleteData = [[NSString alloc] initWithFormat:DataView.text];
CompleteData = [CompleteData stringByAppendingString: @"\n"];
CompleteData = [CompleteData stringByAppendingString:myRandomNumber];
DataView.text = CompleteData;
}
4

2 に答える 2

1

作る

int randomNumber 

静的にするか、インスタンス変数として宣言します。

現在行っていることは、recordData が呼び出されるたびに新しい変数を作成することです。さらに、初期化はしません。ローカル変数は初期化されません。インスタンス変数は 0/nil で初期化されます。その結果、変数にはランダムなコンテンツが含まれます(とにかくその名前が示すように:)。そのランダム値に 1 を追加します。

于 2013-02-13T23:11:12.230 に答える
0
  1. あなたの変数は初期化されていません:int randomNumber = 0それを修正します。
  2. randomNumberのスコープはrecordData:メソッドです。それをholexによって提案された静的変数にするか、さらに良いことに、クラスのプロパティにすることができます。

iVar とプロパティの詳細については、Apple の Objecitve-c ドキュメントのデータのカプセル化を参照してください。

于 2013-02-13T23:11:04.800 に答える