如何将NSInteger
转换为NSString
数据类型?
我尝试了以下内容,其中月份为NSInteger
:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
答案 0 :(得分:258)
NSIntegers不是对象,您将它们转换为long
,以匹配当前的64位体系结构的定义:
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
答案 1 :(得分:174)
Obj-C way =):
NSString *inStr = [@(month) stringValue];
答案 2 :(得分:69)
NSInteger
的方法stringValue
即使是文字也可以使用
NSString *integerAsString1 = [@12 stringValue];
NSInteger number = 13;
NSString *integerAsString2 = [@(number) stringValue];
很简单。不是吗?
var integerAsString = String(integer)
答案 3 :(得分:8)
%zd
适用于NSIntegers(NSUInteger的%tu
),在32位和64位架构上没有强制转换,也没有警告。我不知道为什么这不是" recommended way"。
NSString *string = [NSString stringWithFormat:@"%zd", month];
如果您对此有用,请参阅this question。
答案 4 :(得分:4)
简便方法:
NSInteger value = x;
NSString *string = [@(value) stringValue];
此处@(value)
将给定的NSInteger
转换为NSNumber
对象,您可以为其调用所需的函数stringValue
。
答案 5 :(得分:2)
在对arm64
的支持进行编译时,这不会产生警告:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
答案 6 :(得分:1)
您也可以尝试:
NSInteger month = 1;
NSString *inStr = [NSString stringWithFormat: @"%ld", month];
答案 7 :(得分:0)
给出了答案,但认为对于某些情况,这也是从NSInteger获取字符串的有趣方式
NSInteger value = 12;
NSString * string = [NSString stringWithFormat:@"%0.0f", (float)value];
答案 8 :(得分:0)
在这种情况下,NSNumber可能对你有好处。
NSString *inStr = [NSString stringWithFormat:@"%d",
[NSNumber numberWithInteger:[month intValue]]];