NSIneger等のスカラ型とNSNumber型の変換についてまとめようとしたんだけど 調べてるうちにObjective-Cのint型とNSInteger型、32bitと64bitの関係について 気づいたら調べていたのでまずはそこからまとめておく。 以下、特に注意書きしていない限りは、Mac-OS-X 64bit向けにビルドした結果。 まずは、NSInteger型をint型にキャストせずに代入すると以下の警告が出る。 Implicit conversion loses integer precision: 'NSInteger'(aka 'long') to 'int' 警告の理由は、NSIntegerの持ちうる値が32bitか64bitかは処理系依存だから。 int型変数に値を代入する時はプログラマが明示的にint(32bit)と宣言する必要がある。 そして、NSIntegerはlong