Objective c 如何将整数转换为NSString?
如何将Objective c 如何将整数转换为NSString?,objective-c,nsstring,nsuinteger,Objective C,Nsstring,Nsuinteger,如何将nsuiger转换为NSString?我已尝试,但我的NSString始终返回0 NSUInteger NamesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count]; NSLog(@"--- %d", NamesCategoriesNSArrayCount); [NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d",
nsuiger
转换为NSString
?我已尝试,但我的NSString
始终返回0
NSUInteger NamesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];
NSLog(@"--- %d", NamesCategoriesNSArrayCount);
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];
NSLog(@"=== %d", NamesCategoriesNSArrayCountString);
我希望您的
namescategoriesnarraycountstring
是NSString
;
如果是,请使用下面的代码行
NamesCategoriesNSArrayCountString = [NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];
伊斯蒂德
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];
使用对arm64的支持进行编译时,这不会生成警告:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
为
arm64
编译时,请使用以下命令以避免出现警告:
[NSString stringWithFormat:@"%tu", myNSUInteger];
或者,在您的情况下:
NSUInteger namesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];
NSLog(@"--- %tu", namesCategoriesNSArrayCount);
[namesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%tu", namesCategoriesNSArrayCount]];
NSLog(@"=== %@", namesCategoriesNSArrayCountString);
(另外,提示:变量以小写开头。Info:)您还可以使用:
NSString *rowString = [NSString stringWithFormat: @"%@", @(row)];
其中,行是整数。当您需要格式化Apple类型时,Apple的这篇文章是专门针对以下情况编写的:
OSX使用多种数据类型NSInteger、NSInteger、CGFloat和CFIndex来提供一致的方法来表示32位和64位环境中的值。在32位环境中,NSInteger和NSInteger分别定义为int和unsigned int。在64位环境中,NSInteger和NSInteger分别定义为long和unsigned long。为了避免根据平台使用不同的printf样式类型说明符,可以使用表3中所示的说明符。请注意,在某些情况下,可能需要强制转换值
:NSInteger显示为十进制[NSString stringWithFormat:@“%ld”(长)值]
:NSInteger显示为十六进制[NSString stringWithFormat:@“%lx”(长)值]
:NSUTEGER显示为十进制[NSString stringWithFormat:@“%lu”(无符号长)值]
:NSInteger显示为十六进制[NSString stringWithFormat:@“%lx”(无符号长)值]
:CGFloat[NSString stringWithFormat:@“%f”,值]
:cf索引显示为十进制[NSString stringWithFormat:@“%ld”(长)值]
:cf索引显示为十六进制[NSString stringWithFormat:@“%lx”(长)值]
有关更多详细信息,请参阅本文。从Xcode 4.5开始,这将抛出“格式字符串未使用数据参数”警告。有人知道正确的格式吗?忽略最后一个。我有一个打字错误,我没有注意到的时间最长,而打字错误是什么造成的错误<代码>[NSString stringWithFormat:@“%d”,myNSUInteger]仍然是正确的方法。由@andreas ley给出的答案更准确<代码>%d是有符号整数的格式字符串。NSUTEGER是一个无符号长整数。一旦超出无符号和有符号范围之间的重叠,就需要使用
%lu
,否则当数字实际上是正数时将打印负值。或者%zd
对于NSUInteger
,而不进行打字。@PaulPeelen你的意思是说NSInteger
?我的错。。当然,我的意思是,%tu
(因为它没有签名)。看这里:非常正确。其实我不知道。很好,记住未来。