0

我有一个application你按 a 的地方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

标签没有消失问题是您设置空字符串,因为选定的随机值返回空值。

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 语句是否不为空

于 2012-12-05T10:23:25.910 回答