Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 获取NSInteger值_Objective C_Ios_Ios6 - Fatal编程技术网

Objective c 获取NSInteger值

Objective c 获取NSInteger值,objective-c,ios,ios6,Objective C,Ios,Ios6,我试图获取NSInteger的值并为其设置UILabel值。代码如下: counter_.text = [NSString stringWithFormat:@"%@", [counterAmount intValue]]; 其中counter_uu是我的标签,counterAmount是我的NSInteger。我一直得到一个“接收者类型”nStime**(Ak'int *)不是“ID”或接口指针,考虑将其转换为ID。 我不太清楚如何理解这一点。感谢您的帮助。intValue是一种返回C原语值

我试图获取NSInteger的值并为其设置UILabel值。代码如下:

counter_.text = [NSString stringWithFormat:@"%@", [counterAmount intValue]];
其中counter_uu是我的标签,counterAmount是我的NSInteger。我一直得到一个“接收者类型”nStime**(Ak'int *)不是“ID”或接口指针,考虑将其转换为ID。
我不太清楚如何理解这一点。感谢您的帮助。

intValue
是一种返回C原语值的方法。
%@
打印对象。为了输出C原语值,您必须在格式化字符串中提供类型。
%d
是有符号整数的类型


根据这个问题,正如borrden在下面非常正确地向我指出的,这里处理的类型是
NSInteger
,而不是
NSNumber
。在iOS中
NSInteger
int
的typedef,因此您直接处理的是一个基本类型。NS前缀并不意味着它是一个对象。

计数器金额是一个
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
,所以这个答案是不正确的。你暗示我误读了这个问题的观点是完全正确的,我已经对我的答案进行了适当的编辑,以避免潜在的误导信息持续存在。