从数组中获取值并将其放在文本标签中

时间:2012-12-05 10:17:29

标签: iphone ios button nsarray uilabel

我有一个application,您按下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])]];
 }

2 个答案:

答案 0 :(得分: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语句是否为空

答案 1 :(得分: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);