如何将NSUInteger转换为NSString?

时间:2011-03-01 14:11:15

标签: objective-c nsstring nsuinteger

如何将NSUInteger转换为NSString?我已经尝试了,但我的NSString一直都是0。

NSUInteger NamesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %d", NamesCategoriesNSArrayCount);  
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d",    NamesCategoriesNSArrayCount]];  
NSLog(@"=== %d", NamesCategoriesNSArrayCountString);

5 个答案:

答案 0 :(得分:34)

在对arm64的支持进行编译时,这不会产生警告:

[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];

答案 1 :(得分:7)

我希望您的NamesCategoriesNSArrayCountStringNSString; 如果是,请使用以下代码行。

NamesCategoriesNSArrayCountString  = [NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];

而不是

[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];

答案 2 :(得分:5)

编译arm64时,请使用以下内容以避免警告:

[NSString stringWithFormat:@"%tu", myNSUInteger];

或者,在您的情况下:

NSUInteger namesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %tu", namesCategoriesNSArrayCount);  
[namesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%tu", namesCategoriesNSArrayCount]];  
NSLog(@"=== %@", namesCategoriesNSArrayCountString);

(另外,提示:变量以小写字母开头。信息:here

答案 3 :(得分:5)

您也可以使用:

NSString *rowString = [NSString stringWithFormat: @"%@",  @(row)];

其中row是NSUInteger。

答案 4 :(得分:0)

当您需要格式化Apple类型时,Apple的这篇String Format Specifiers文章是特定的:

  

OS X使用多种数据类型-NSInteger,NSUInteger,CGFloat和CFIndex-来提供在32位和64位环境中表示值的一致方法。在32位环境中,NSInteger和NSUInteger分别定义为int和unsigned int。在64位环境中,NSInteger和NSUInteger分别定义为long和unsigned long。为了避免根据平台使用不同的printf样式类型说明符,可以使用表3中所示的说明符。请注意,在某些情况下,您可能必须转换值。

  • [NSString stringWithFormat:@"%ld", (long)value]:NSInteger显示为十进制
  • [NSString stringWithFormat:@"%lx", (long)value]:NSInteger显示为十六进制
  • [NSString stringWithFormat:@"%lu", (unsigned long)value]:NSUInteger显示为十进制
  • [NSString stringWithFormat:@"%lx", (unsigned long)value]:NSUInteger显示为十六进制
  • [NSString stringWithFormat:@"%f", value]:CGFloat
  • [NSString stringWithFormat:@"%ld", (long)value]:CFIndex显示为十进制
  • [NSString stringWithFormat:@"%lx", (long)value]:CFIndex显示为十六进制

有关详细信息,请参阅文章。