如何将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]]];