我在NSLog / NSAssert等调用中使用了相当数量的字符串格式说明符,其中使用了 %d
和 %u
分别与 NSInteger(= 32位上的int)
和 NSUInteger(= 32位上的unsigned int)
类型配对。
将应用程序转换为64位时,会出现警告(当然),因为现在需要 %ld %lu
来表示long
和unsigned long
类型。
简单地转换格式说明符当然会引入32位构建中的反向警告。所以,我唯一能想到的解决方案是使用64位格式说明符,并在32位构建中给出警告时,在所有地方都强制转换为64位值类型。
但我在想,也许有针对NSInteger
和NSUInteger
类型的格式说明符可以在不进行强制转换的情况下在两种架构上工作?