我正在尝试找出将NSUInteger转换为适用于32位和64位系统的字符串的最佳方法。 我看到NSUInteger在这两个平台上的定义不同,因此我想确保我的做法是正确的。
我看到的所有解决方案都需要进行一些强制转换,或者似乎不正确。 使用下面的代码会收到警告,要求我添加显式转换。
NSUInteger unsignedInteger = PostStatusFailed; // This is an enum
NSString *string = [NSString stringWithFormat:@"postStatus == %lu", unsignedInteger];
我也尝试了 %d
(有符号整数,但似乎不正确),以及 %lx
,但都不正确。谢谢。
unsigned long
,而对于32位系统,则是unsigned int
。如果您在编译64位二进制文件时使用%u
用于 NSUInteger,就会收到警告信息。 - neilco