Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将NSInteger转换为NSString数据类型?_Ios_Iphone_Nsstring_Nsinteger - Fatal编程技术网

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

Ios 如何将NSInteger转换为NSString数据类型?,ios,iphone,nsstring,nsinteger,Ios,Iphone,Nsstring,Nsinteger,如何将NSInteger转换为NSString数据类型 我尝试了以下方法,其中月份是NSInteger: NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]]; nsinteger不是对象,您可以将它们强制转换为long,以匹配当前64位体系结构的定义: NSString*inStr=[NSString stringWithFormat:@“%ld”(长)个月]答案已经给出,但请认为在某些情况下,这也是从

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

我尝试了以下方法,其中月份是
NSInteger

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

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


NSString*inStr=[NSString stringWithFormat:@“%ld”(长)个月]

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

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


使用对arm64的支持进行编译时,这不会生成警告:

[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
现代Objective-C
NSInteger
具有方法
stringValue
,该方法甚至可以与文本一起使用

NSString *integerAsString1 = [@12 stringValue];

NSInteger number = 13;
NSString *integerAsString2 = [@(number) stringValue];
很简单。不是吗

敏捷的 您也可以尝试:

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

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

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

%zd
适用于NSInteger(
%tu
适用于NSInteger),在32位和64位体系结构上都没有强制转换和警告。我不知道为什么这不是“”这个词

如果您对这项工作的原因感兴趣,请参阅。

简易方法:

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

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

我尝试了这一点,但一直收到一条警告
格式指定类型为“int”,但参数的类型为“NSInteger*”(也称为“int*)
。相反,根据,我使用了
NSString*inStr=[nsstringwithformat:@“%d”,int)month]请注意,在64位处理器上,例如新的A7芯片,如果您的应用程序编译为64位,则NSInteger实际上是一个长的,而不是一个int。对于一般情况,在64位平台上进行强制转换(int)月将是破坏性的。如果只针对苹果平台,请选择Aleksey Kozhevnikov回答中的Objective-C方式,或者类似的方式,可以同时使用int和long,例如long;-)例如,虽然Andreas Ley的答案中有未签名(意思是非否定的)。@Steven我试图删除答案,以使当前更适用的答案浮出水面并被接受,但显然,已接受的答案无法删除。因此,我试图至少调整它的内容,以便为寻找不触发警告的快速解决方案的人们提供尽可能多的有用信息。@Luviere清楚地解释了如何以格式字符串处理NSInteger。您应该更新您的答案以遵循此建议。
[@(integerValue)stringValue]
是一种更干净的方法。
NSString *inStr = [NSString stringWithFormat:@"%d", 
                    [NSNumber numberWithInteger:[month intValue]]];
NSString *string = [NSString stringWithFormat:@"%zd", month];
NSInteger value = x;
NSString *string = [@(value) stringValue];