我在 NSLog / NSAssert 等调用中有相当数量的字符串格式说明符,它们分别使用%d
和%u
withNSInteger (= int on 32bit)
和NSUInteger (= unsigned int on 32bit)
类型。
将应用程序转换为 64 位时,这会发出警告(当然),正如%ld %lu
现在变成long
andunsigned long
类型所预期的那样。
简单地转换格式说明符当然会在 32 位构建中引入反向警告。
因此,我看到的唯一没有警告的解决方案是使用 64 位说明符,并将 32 位构建中出现警告的任何地方都转换为 64 位值类型。
但是我想知道是否可能有专门针对NSInteger
andNSUInteger
类型的格式说明符,它们可以在两种架构上工作而无需强制转换?