首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取NSInteger值

获取NSInteger值
EN

Stack Overflow用户
提问于 2012-09-24 11:22:18
回答 2查看 582关注 0票数 0

我正在尝试获取NSInteger的值并为其设置一个UILabel值。代码如下:

代码语言:javascript
复制
counter_.text = [NSString stringWithFormat:@"%@", [counterAmount intValue]];

其中counter_是我的标签,counterAmount是我的NSInteger。我一直收到“接收器类型'NSInteger *‘(又名'int *')不是' id’或接口指针,请考虑将其转换为id。”

我不太确定如何理解这一点。我很感谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2012-09-24 11:27:32

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

根据问题,正如下面borrden非常正确地向我指出的那样,这里处理的类型是NSInteger而不是NSNumber。在iOS中,NSIntegerint的一个类型定义,因此您可以直接处理原始类型。NS前缀并不意味着它是一个对象。

票数 1
EN

Stack Overflow用户

发布于 2012-09-24 11:31:47

因为counterAmount是一个NSInteger,所以不能对它使用intValue (因为它不是一个对象,所以实际上不能向它发送任何消息)。

取而代之的是:

代码语言:javascript
复制
counter_.text = [NSString stringWithFormat:@"%d", counterAmount];

话虽如此,如果你要向用户显示这个值,你真的应该使用一个数字格式化程序,这样它的格式就像他们在设置应用程序中设置的那样显示:

代码语言:javascript
复制
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];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12558455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档