2011-03-14 32 views
1

我生成一個文本字段中輸入以下代碼,並設置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()打印出我的排序數組,並獲得正確的排序結果,所以我知道數據在數組中。我無法正確地將其設置到我的文本字段中。任何建議將不勝感激。

回答

2

[array objectAtIndex : 0]不包含整數;它包含一個NSNumber。 NSNumber是一個對象類型;要打印出對象類型的值,您需要「%@」,而不是「%2d」。在這種情況下,雖然,我會用:

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

intValue方法將返回你想要的整數。

+1

@Gendolkari非常感謝您的幫助。 此行不起作用: [num_1Field setText:[NSString stringWithFormat:@「%2d」,[array objectAtIndex:0] intValue]]; 但是這條線確實工作。 [num_1Field setText:[NSString stringWithFormat:@「%@」,[array objectAtIndex:0]]]; 再次感謝您的幫助。 – 2011-03-15 01:24:52