Posted at

NSLogで数値を扱うとき

More than 1 year has passed since last update.

とりあえず登録したら、何か投稿しないとということで・・・。

ありきたりなNSLogのことでも。

今更書くことでもないわ、ってネタですが。

NSInteger だったり CGFloat だったり、数値をログに出したいことはしょっちゅうあることで。

だいたいは

NSInteger foo = 12345;

NSLog(@"foo:%d", foo);

CGFloat bar = 123.45f;
NSLog(@"bar:%f", bar);

とかでしょうか。

32ビットの端末だとこれで問題ないです。

でも64ビットの端末だと

NSInteger foo = 12345;

NSLog(@"foo:%ld", foo);

CGFloat bar = 123.45f;
NSLog(@"bar:%lf", bar);

のようにしないと警告が出ます。

いちいちめんどくさいですよね。・・・めんどくさいですよね?

そこで、以下のようにすればどっちでも問題なくなります。

NSInteger foo = 12345;

NSLog(@"foo:%@", @(foo));

CGFloat bar = 123.45f;
NSLog(@"bar:%@", @(bar));

同じ書き方でいけるので楽です。

そろそろ32ビットも切られちゃうそうですね。(9to5mac

そうなると上記の話もまぁ、どうでもいいことになっちゃいますが。

そんなことよりテスト端末どうしよう・・・。

4sと5cしか持ってないよ・・・。

参考:

https://9to5mac.com/2017/01/31/ios-10-3-beta-32-bit-app-warning/;