8

iOSNSUIntegerではunsigned int、OSX では ですunsigned long。次のような印刷ステートメントを作成するにはどうすればよいですか

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

警告なしで両方のプラットフォームでコンパイルしますか? もちろん、#ifdef #else #endifコンストラクトを使用できますが、4 行のコードが追加されます。戻り値を unsigned int にキャストすることもできます。より短い解決策はありますか?

4

2 に答える 2

18

大きい方までキャストしてみてはいかがでしょうか?

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

iOS では警告はありません。OSX ではノーオペレーションだと思います。

于 2013-01-16T01:09:12.427 に答える