我生成以下代码并在文本字段中设置primeNum:
int primeNum = 1+(arc4random() & 59);
[num_1Field setText : [NSString stringWithFormat : @"%2d", primeNum]];
此整数值按预期显示。但是,如果我将我的随机数添加到数组中,对它进行排序并使用排序数组来设置相同的文本字段,我不会得到我预期的整数值。我的代码如下:
NSMutableArray *array = [NSMutableArray arrayWithCapacity : 5];
[array addObject: [NSNumber numberWithInteger : primeNum]];
[array addObject: [NSNumber numberWithInteger : randNum_2]];
...
[array sortUsingSelector:@selector(compare:)];
[num_2Field setText : [NSString stringWithFormat : @"%2d", [array objectAtIndex : 0]]];
因为primeNum和[array objectAtIndex:1]
都是整数值,我认为我的代码可以工作,但显然它没有。我可以使用NSLog()打印出我的排序数组并获得正确的排序结果,因此我知道数据在数组中。我无法将其正确设置到我的文本字段中。任何建议将不胜感激。
答案 0 :(得分:2)
[array objectAtIndex : 0]
不包含整数;它包含一个NSNumber。 NSNumber是一种对象类型;要打印出对象类型的值,您需要“%@”,而不是“%2d”。在这种情况下,我会使用:
[num_2Field setText : [NSString stringWithFormat : @"%2d", [[array objectAtIndex : 0] intValue]];
intValue
方法将返回您想要的整数。