试图设置文本字段问题

时间:2011-03-14 20:59:51

标签: ios

我生成以下代码并在文本字段中设置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()打印出我的排序数组并获得正确的排序结果,因此我知道数据在数组中。我无法将其正确设置到我的文本字段中。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

[array objectAtIndex : 0]不包含整数;它包含一个NSNumber。 NSNumber是一种对象类型;要打印出对象类型的值,您需要“%@”,而不是“%2d”。在这种情况下,我会使用:

[num_2Field setText : [NSString stringWithFormat : @"%2d", [[array objectAtIndex : 0] intValue]];

intValue方法将返回您想要的整数。