在标签中显示NSNumber

时间:2011-11-01 22:18:41

标签: iphone objective-c ios xcode

我正在尝试将带有键的数组中的NSNumber显示到UILabel中。这是我目前的代码:marblesNeeded.text = [[[records objectAtIndex:0] valueForKey: @"marblesneeded"] intValue];

我也得到错误: warning: Semantic Issue: Incompatible integer to pointer conversion assigning to 'NSString *' from 'int'

由于

2 个答案:

答案 0 :(得分:13)

您需要创建一个NSString来设置UILabel的文本。

marblesNeeded.text = [NSString stringWithFormat:@"%i",[[[records objectAtIndex:0] valueForKey: @"marblesneeded"] intValue]];

格式为%i表示您将在格式之后提供整数值。

编辑:

正如一些评论所指出的那样,NSNumber确实有一个stringValue,它确实有效,但不是我个人的偏好,因为它让你几乎无法控制字符串的格式。考虑这个例子。

NSNumber *number = [NSNumber numberWithFloat:3.25];
NSLog(@"%@",number.stringValue);  // Will print 3.25
NSLog(@"%@",[NSString stringWithFormat:@"%i",number.intValue]); // Will print 3

由于问题涉及打印intValue,因此可能需要更明确的格式。

答案 1 :(得分:4)

marblesNeeded.text = [[[records objectAtIndex:0] valueForKey: @"marblesneeded"] stringValue];