如何将NSInteger转换为NSString数据类型?

时间:2009-11-25 11:36:00

标签: ios iphone nsstring nsinteger

如何将NSInteger转换为NSString数据类型?

我尝试了以下内容,其中月份为NSInteger

  NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];

9 个答案:

答案 0 :(得分:258)

NSIntegers不是对象,您将它们转换为long,以匹配当前的64位体系结构的定义:

NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];

答案 1 :(得分:174)

Obj-C way =):

NSString *inStr = [@(month) stringValue];

答案 2 :(得分:69)

现代Objective-C

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]]];