我试图找出将 NSUInteger 转换为适用于 32 位和 64 位系统的字符串的最佳方法。我看到 NSUInteger 对两个平台的定义不同,我想确保我在做什么是正确的。
我见过的所有解决方案都需要进行一些转换,或者看起来不正确。我收到以下代码的警告,要求我添加显式类型转换。
NSUInteger unsignedInteger = PostStatusFailed; // This is an enum
NSString *string = [NSString stringWithFormat:@"postStatus == %lu", unsignedInteger];
我也试过
%d
(签名整数,这似乎不正确)和 %lx
,但似乎都不正确。谢谢。 最佳答案
从 String Programming Guide :
查看所有类型的链接。对于 NSUInteger
,正确的做法是:
NSUInteger i = 42;
NSString *numberString = [NSString stringWithFormat:@"%lu is the answer to life, the universe, and everything.", (unsigned long)i];
关于ios - NSUInteger 字符串编码 32 位和 64 位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19391368/