如何将NSInteger转换为NSString数据types?
如何将NSInteger
转换为NSString
数据types?
我尝试了以下,其中月是一个NSInteger
:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
NSInteger不是对象,为了与当前的64位体系结构的定义相匹配,需要将它们投入long
:
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
Obj-C方式=):
NSString *inStr = [@(month) stringValue];
使用
现代objective c
说12我们你的NSInteger
NSString *integerAsString = [@12 stringValue];
更确切地说
NSInteger number = 12; NSString *integerAsString = [@(number) stringValue];
很简单。 不是吗?
如果你使用
Swift
var integerAsString = String(integer)
%zd
适用于NSInteger(NSUInteger的%tu
),在32位和64位体系结构上都没有强制转换和警告。 我不知道为什么这不是“ 推荐的方式 ”。
NSString *string = [NSString stringWithFormat:@"%zd", month];
如果你有兴趣为什么这个作品看到这个问题 。
简单的方法:
NSInteger value = x; NSString *string = [@(value) stringValue];
这里@(value)
将给定的NSInteger
转换为一个NSNumber
对象,你可以调用它所需的函数stringValue
。
编译支持arm64
,不会产生警告:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
你也可以尝试:
NSInteger month = 1; NSString *inStr = [NSString stringWithFormat: @"%ld", month];
答案是给定的,但认为在某些情况下,这将是从NSInteger获取string的有趣方式
NSInteger value = 12; NSString * string = [NSString stringWithFormat:@"%0.0f", (float)value];
NSNumber在这种情况下可能对你有好处。
NSString *inStr = [NSString stringWithFormat:@"%d", [NSNumber numberWithInteger:[month intValue]]];