web-dev-qa-db-ja.com

NSIntegerの最大値はいくつですか?

NSIntegerの最大値をNSIntegerに格納する必要がありますか?それを行うための正しい構文は何ですか?

ありがとう。

34
David

NSIntegerの最大値は NSIntegerMax です。

90
Chuck

NSIntegerの最大値はNSIntegerMaxです

Foundation Constants Reference から)

13
Mitch Wheat

32ビットおよび64ビットの場合、2つの規則があります。a)ILP32 b)LP64

32ビットランタイムは、ILP32と呼ばれる規則を使用します。この規則では、整数、長整数、およびポインターは32ビット量です。 64ビットランタイムはLP64規則を使用します。整数は32ビット量であり、長整数とポインタは64ビット量です。これらの規則は、OS Xで実行されるアプリのABIと一致します(同様に、Cocoa Touchの規則は、Cocoaで使用されるデータ型と一致します)。これにより、2つのオペレーティングシステム間で相互運用可能なコードを簡単に記述できます。

表1-1 Objective-Cコードで一般的に使用されるすべての整数型。各エントリには、データ型のサイズとメモリ内での予想される配置が含まれます。強調表示されたテーブルエントリは、LP64規則がILP32規則と異なる場所を示しています。これらのサイズの違いは、64ビットランタイム用にコンパイルしたときにコードの動作が変化する場所を示します。コンパイラーは、64ビットランタイム用にコンパイルするときにLP64マクロを定義します。

enter image description here

nSIntegerの64ビット最大範囲の場合:LONG_MAX:9223372036854775807

4
Aks

NSUIntegerを使用しているときにNSIntegerMaxとは異なる値が取得される理由を理解するために少し時間を要しました。

NSUIntegerの最大値はNSUIntegerMaxです

(また http://developer.Apple.com/library/ios/#documentation/cocoa/reference/foundation/Miscellaneous/Foundation_Constants/Reference/reference.html から)

1
Andy B