【发布时间】:2010-12-20 06:19:57
【问题描述】:
如何将NSInteger 转换为NSString 数据类型?
我尝试了以下方法,其中月份是NSInteger:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
【问题讨论】:
标签: ios iphone nsstring nsinteger
如何将NSInteger 转换为NSString 数据类型?
我尝试了以下方法,其中月份是NSInteger:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
【问题讨论】:
标签: ios iphone nsstring nsinteger
NSInteger 不是对象,您将它们转换为 long,以匹配当前 64 位架构的定义:
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
【讨论】:
Format specifies type 'int' but the argument has type 'NSInteger *'(aka 'int *')。相反,根据Apple docs,我选择了NSString *inStr = [NSString stringWithFormat:@"%d", (int)month];
[@(integerValue) stringValue] 是一种更简洁的方法。
给出了答案,但认为在某些情况下,这也是从 NSInteger 获取字符串的有趣方式
NSInteger value = 12;
NSString * string = [NSString stringWithFormat:@"%0.0f", (float)value];
【讨论】:
Obj-C 方式 =):
NSString *inStr = [@(month) stringValue];
【讨论】:
在支持arm64 的情况下编译时,不会产生警告:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
【讨论】:
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 适用于 NSIntegers(%tu 适用于 NSUInteger),在 32 位和 64 位架构上都没有强制转换和警告。我不知道为什么这不是“recommended way”。
NSString *string = [NSString stringWithFormat:@"%zd", month];
如果您对它的工作原理感兴趣,请参阅this question。
【讨论】:
简单的方法:
NSInteger value = x;
NSString *string = [@(value) stringValue];
这里@(value) 将给定的NSInteger 转换为NSNumber 对象,您可以为其调用所需的函数stringValue。
【讨论】: