0

aapplicationを押す場所がありbutton、ボタンを押すと、ラベルがランダムな単語に変わります。しかし、ボタンを押すとlabel消えます。

私は何をすべきか?

これはコードです:

 if (sender == self.button) {

        NSString*path = [[NSBundle mainBundle]pathForResource:@"wordss" ofType:@"plist"];
        words = [[NSMutableArray alloc]initWithContentsOfFile:path];
        [self.randomLabel setText:[self.words objectAtIndex:arc4random_uniform([self.words count])]];
 }
4

2 に答える 2

0

次の出力を確認しましたか。

arc4random_uniform([self.words count])

また、label は NSString を取ることができるため、int を NSString にキャストする必要があります。だから、そのようにしてください:

NSString *myGeneratedRandNumber = [NSString stringWithFormat:@"%d", arc4random_uniform([self.words count])];

次に、次のように、この文字列をラベルに設定します。

[myLabel setText:myGeneratedRandNumber];

また、この関数の動作にも注意してください。

以下は、0 から 73 までの数値を生成します。

arc4random_uniform(74);
于 2012-12-05T10:29:10.397 に答える
0

ラベルが消えない問題は、選択したランダム値が null 値を返すため、空の文字列を設定していることです。

NSString*path = [[NSBundle mainBundle]pathForResource:@"wordss" ofType:@"plist"];
words = [[NSMutableArray alloc]initWithContentsOfFile:path];
NSLog("%@",words);
NSString *string = [NSString stringWithFormat:[self.words objectAtIndex:((arc4random() % [self.words count]) + 0)]]
NSLog("%@",string);
[self.randomLabel setText:string];

nslog ステートメントが null でないことを確認してください

于 2012-12-05T10:23:25.910 に答える