2010-09-26

int or NSInteger?

整数を表現するのに、intやNSIntegerがあります。
現時点のiPhoneは32bit OSで、int = long = NSInteger = 32bit整数で、すべて同じでどれを使っても結果は同じです。実機でもシミュレータでも32bitとして扱われています。

ただし、NSIntegerだけは将来的に64bit整数にかわる可能性がありますので、場合によってはNSIntegerを使うかintやlongを使うか、使い分けが必要になるケースがあります。

例えば外部で定義されているデータフォーマット(画像とか動画とか)で、32bit整数と定義されているところをiPhoneでNSIntegerとして取り扱ってしまうと将来的に動作しない可能性を残します。
将来的にずっと32bitでないと困るところかどうかは意識しておいたほうが良いと思います。

No comments:

Post a Comment