如何将NSUInteger转换为NSString?

你怎么把
NSUInteger
转换成
NSString
?我试过但是我的
NSString
一直都是0。
NSUInteger NamesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %d", NamesCategoriesNSArrayCount);  
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d",    NamesCategoriesNSArrayCount]];  
NSLog(@"=== %d", NamesCategoriesNSArrayCountString);
    
已邀请:
在编译时支持
arm64
,这不会产生警告:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
    
我希望你的
NamesCategoriesNSArrayCountString
NSString
; 如果是,请使用以下代码行。
NamesCategoriesNSArrayCountString  = [NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];
不是
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];
    
编译
arm64
时,请使用以下内容以避免警告:
[NSString stringWithFormat:@"%tu", myNSUInteger];
或者,在您的情况下:
NSUInteger namesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %tu", namesCategoriesNSArrayCount);  
[namesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%tu", namesCategoriesNSArrayCount]];  
NSLog(@"=== %@", namesCategoriesNSArrayCountString);
(另外,提示:变量以小写开头。信息:这里)     
您还可以使用:
NSString *rowString = [NSString stringWithFormat: @"%@",  @(row)];
其中row是NSUInteger。     
当您需要格式化Apple类型时,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]
:CGFloat
[NSString stringWithFormat:@"%ld", (long)value]
:CFIndex显示为十进制
[NSString stringWithFormat:@"%lx", (long)value]
:CFIndex显示为十六进制 有关详细信息,请参阅文章。     

要回复问题请先登录注册