2013-01-16 3 views
7

iOS NSUIntegerunsigned int、OSXではunsigned longです。iOSおよびOSXでunsigned intおよびunsigned longを使用して警告なしでNSLogをコンパイルします。

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

のような印刷ステートメントを警告なしに作成するにはどうすればよいですか?私はもちろん#ifdef #else #endifコンストラクトを使うことができますが、それは4行のコードを追加します。戻り値をunsigned intにキャストすることもできます。より短い解決策はありますか?

答えて

15

2つのうち大きい方のキャストはどうですか?

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

iOSでは警告が表示されず、OSXではノーオペレーションだと思います。

+3

最良の方法は 'のNSLog( "%のLU"、(unsigned long型)array.count @)である;' 'NSUInteger'、および'のNSLog(@ "%ldの"、(長い)button.tagについて); '' NSInteger':32ビットまたは64ビットの警告なし。 – NSGod

-1

2つのうち大きい方のキャストはどうですか?

NSLog(@"Array has %ld elements.",(unsigned long)[array count]); 
No warning in iOS, and I think it's a no-op in OSX. 
関連する問題