["%lu" "unsigned long" NSUInteger]でgoogleに聞いてみたところ、
Appleのドキュメント、String Format Specifiersの
Platform Dependenciesに書いてあるのを見つけました。
たとえば村上さんの例のように、NSUIntegerは%ld or %lxで
unsigned longにキャストすること、とあります。
他にもNSIntegerやCGFloatなどについても書かれています。
On Thu, 5 Aug 2010 14:18:33 -0700 (PDT), m_yukio wrote:
> 村上と申します。
> 先日ある勉強会で指摘されたので、調べてみました。
>
> 勘違いして(多分、64bitへの移行のドキュメントを読み違えた)、私は、
> NSUInteger型の変数をNSLogでデバッグ出力する際、以下のよ
> うにフォーマットを指定していました。
>
> NSUInteger n;
> n = 123;
> NSLog(@"%lu", n);
>
> 勉強会では、32bit/64bitでサイズが変わるので、以下のように記述するとい
> いと教えてもらいました。
>
> NSLog(@"%lu", (unsigned long)n);
>
> 皆さんは、どうされているでしょうか?
>
--
kimura wataru
#ifdef __LP64__
#define UINT_FMT @"%lu"
#else
#define UINT_FMT @"%u"
#endif
...
NSLog(UINT_FMT, n);
...
とか(マクロの名前は適宜決めてください)。まあこれは Cocoa の ML
なのでアレですが、クロスプラットフォームなコードで書式指定が異なる場合などにも使えます。
Yanagisawa
2010年8月5日14:18 m_yukio <yukio.m...@gmail.com>:
> --
> このグループから退会するには、次へメールをお送りください。
> cocoa-dev-jap...@googlegroups.com
> その他のオプションについては以下にアクセスしてください。
> http://groups.google.com/group/cocoa-dev-japan
>