26

你如何将一个转换NSUInteger成一个NSString?我已经尝试过,但我一直NSString返回 0。

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

5 回答 5

37

编译时支持 for arm64,这不会产生警告:

[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
于 2013-12-06T22:23:17.440 回答
7

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

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

而不是

[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];
于 2011-03-03T09:20:55.843 回答
6

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

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

或者,在您的情况下:

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

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

于 2014-03-23T22:48:16.930 回答
5

您还可以使用:

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

其中 row 是一个 NSUInteger。

于 2015-12-11T07:14:14.653 回答
0

Apple 的这篇String Format Specifiers 文章特别适用于您需要格式化 Apple 类型:

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]: CGF浮动
  • [NSString stringWithFormat:@"%ld", (long)value]: CFIndex 显示为十进制
  • [NSString stringWithFormat:@"%lx", (long)value]: CFIndex 显示为十六进制

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

于 2016-11-01T18:08:25.483 回答