我试图找出将 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/

10-13 03:50