Jam*_*nio 3 64-bit cocoa-touch ios
我试图找出将NSUInteger转换为适用于32位和64位系统的字符串的最佳方法.我看到两个平台的NSUInteger定义不同,我想确保我所做的是正确的.
我见过的所有解决方案都需要一些铸造,或者似乎不正确.我收到一个警告,下面的代码要求我添加一个显式的演员.
NSUInteger unsignedInteger = PostStatusFailed; // This is an enum
NSString *string = [NSString stringWithFormat:@"postStatus == %lu", unsignedInteger];
Run Code Online (Sandbox Code Playgroud)
我也尝试过%d(签名注册,这似乎不正确)%lx,但是,似乎没有一个是正确的.谢谢.
从字符串编程指南:
OS X使用几个数据类型- ,
NSInteger,NSUInteger,CGFloat和CFIndex-to在32位和64位的环境下提供代表值的一致的手段.在一个32位的环境下,NSInteger并且NSUInteger被定义为int与unsigned int分别.在64位的环境,NSInteger并且NSUInteger被定义为long与unsigned long分别.为了避免根据平台使用不同的printf样式类型说明符,可以使用表3中显示的说明符.请注意,在某些情况下,您可能必须转换值.
查看所有类型的链接.因为NSUInteger,正确的方法是:
NSUInteger i = 42;
NSString *numberString = [NSString stringWithFormat:@"%lu is the answer to life, the universe, and everything.", (unsigned long)i];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2030 次 |
| 最近记录: |