8

在 iOSNSUInteger上是unsigned int,在 OSX 上是unsigned long. 我怎样才能做出像这样的打印声明

 NSLog(@"Array has %d elements.",[array count]);

在没有警告的情况下在两个平台上编译?我当然可以使用一个#ifdef #else #endif构造,但这会添加 4 行代码。我还可以将返回值转换为无符号整数。有更短的解决方案吗?

4

2 回答 2

18

一个演员到两者中的较大者怎么样?

NSLog(@"Array has %ld elements.",(unsigned long)[array count]);

iOS 中没有警告,我认为这在 OSX 中是无操作的。

于 2013-01-16T01:09:12.427 回答
-1

一个演员到两者中的较大者怎么样?

NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
No warning in iOS, and I think it's a no-op in OSX.
于 2015-08-07T10:47:41.850 回答