在 iOS 上 NSUInteger
是一个 unsigned int
,在 OSX 上它是一个 unsigned long
。我怎样才能做出像
NSLog(@"Array has %d elements.",[array count]);
在没有警告的情况下在两个平台上编译?我当然可以使用 #ifdef#else #endif
构造,但这会添加 4 行代码。我还可以将返回值转换为 unsigned int。有更短的解决方案吗?
最佳答案
将两者中较大的一个进行转换怎么样?
NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
在 iOS 中没有警告,我认为它在 OSX 中是空操作。
关于ios - 在 iOS 和 OSX 上使用 unsigned int 和 unsigned long 编译 NSLog 而没有警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14349844/