我想抓住一個NSInteger的值,併爲其設置一個UILabel值。代碼如下:獲取NSInteger值
counter_.text = [NSString stringWithFormat:@"%@", [counterAmount intValue]];
其中counter_是我的標籤,counterAmount是我的NSInteger。我不斷收到一個「接收器類型'NSInteger *'(又名'int *')不是'id'或接口指針,考慮將其轉換爲id。你的幫助。
我想抓住一個NSInteger的值,併爲其設置一個UILabel值。代碼如下:獲取NSInteger值
counter_.text = [NSString stringWithFormat:@"%@", [counterAmount intValue]];
其中counter_是我的標籤,counterAmount是我的NSInteger。我不斷收到一個「接收器類型'NSInteger *'(又名'int *')不是'id'或接口指針,考慮將其轉換爲id。你的幫助。
intValue
是一個NSNumber
方法返回一個C原始值。%@
打印的對象。爲了輸出一個C原始值,你必須在格式化字符串提供類型。%d
是有符號整數類型
根據這個問題,以及正如下面borrden指出的那樣,我在這裏處理的類型是NSInteger
而不是NSNumber
。在iOS中,NSInteger
是int
的typedef,因此您直接處理原始類型。 NS前綴並不意味着它是一個對象。
由於counterAmount是NSInteger
,你不能用它intValue
(因爲它不是一個對象,你不能發送任何消息吧,其實)。
相反,使用:
counter_.text = [NSString stringWithFormat:@"%d", counterAmount];
現在這樣說,如果要顯示該值的用戶,你真的應該使用一個數字格式化,使其格式化,他們已經建立起來的方式在設置應用程序中顯示:
NSNumber *number = [NSNumber numberWithInt:counterAmount];
NSNumberFormatter *formatter = [NSNumberFormatter new];
formatter.numberStyle = NSNumberFormatterDecimalStyle; // Or whichever style is appropriate for your number.
counter_.text = [formatter stringFromNumber:number];
counterAmount是一個'NSInteger',所以這個答案是不正確的。 – borrrden
您暗示我誤解了這個問題是完全正確的,並且我已經適當地編輯了我的答案,以便潛在的誤導性信息不會持續存在。 – Tommy
作爲迴應,我刪除了我的反對票。感謝編輯。 – borrrden