2011-11-01 22 views
1

我想顯示一個NSNumber從一個數組與密鑰到UILabel。這裏是我當前的代碼:marblesNeeded.text = [[[records objectAtIndex:0] valueForKey: @"marblesneeded"] intValue];顯示在標籤中的NSNumber

我也得到了錯誤: warning: Semantic Issue: Incompatible integer to pointer conversion assigning to 'NSString *' from 'int'

感謝

回答

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 

由於問題envolved打印intValue這個更明確的格式可能是必要的。

+2

您還可以使用[myNumber stringValue] – sosborn

+4

無需獲取int值NSNumber應知道如何自行打印,例如'[NSString stringWithFormat:@「%@」,[[記錄objectAtIndex:0] valueForKey:@「marblesneeded」];' –

+0

@sosborn評論更酷,但如果您的格式稍微複雜一點,便於知道我的評論 –

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