【发布时间】:2013-12-19 18:19:07
【问题描述】:
我在 NSLog / NSAssert 等调用中有相当数量的字符串格式说明符,它们分别使用 %d 和 %u 与 NSInteger (= int on 32bit) 和 NSUInteger (= unsigned int on 32bit) 类型。
将应用程序转换为 64 位时,这会发出警告(当然),因为 %ld %lu 预计现在变成了 long 和 unsigned long 类型。
简单地转换格式说明符当然会在 32 位版本中引入反向警告。
因此,我看到的唯一没有警告的解决方案是使用 64 位说明符,并将 32 位构建中出现警告的任何地方都转换为 64 位值类型。
但我想知道是否有专门针对 NSInteger 和 NSUInteger 类型的格式说明符,无需强制转换即可在两种架构上工作?
【问题讨论】:
-
我们可以禁用警告吗?
标签: ios objective-c 64-bit arm64