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

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

我尝试了以下的方法,月份是 NSInteger:

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

NSInteger 不是对象,您将它们强制转换为 long,以便匹配当前64位架构的定义:

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

答案已经给出,但是认为在某些情况下,这也是从 NSInteger 获取字符串的有趣方法

NSInteger value = 12;
NSString * string = [NSString stringWithFormat:@"%0.0f", (float)value];

Obj-C way =) :

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

在编译时支持 arm64,这不会产生警告:

[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];

现代目标 -C

NSInteger的方法 stringValue甚至可以与文字一起使用

NSString *integerAsString1 = [@12 stringValue];


NSInteger number = 13;
NSString *integerAsString2 = [@(number) stringValue];

很简单,不是吗?

斯威夫特

var integerAsString = String(integer)

你也可以试试:

NSInteger month = 1;
NSString *inStr = [NSString stringWithFormat: @"%ld", month];

在这种情况下,NSNumber 可能对你有好处。

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

%zd适用于 NSInteger (%tu适用于 NSUInteger) ,在32位和64位架构上没有强制转换和警告。我不知道为什么这不是“ 推荐的方法”。

NSString *string = [NSString stringWithFormat:@"%zd", month];

如果你对这个工作原理感兴趣,请看 这个问题

简单的方法:

NSInteger value = x;
NSString *string = [@(value) stringValue];

这里,@(value)将给定的 NSInteger转换为 NSNumber对象,您可以为此调用所需的函数 stringValue