2つの基本的な違いは何ですか..?誰かが NSInteger と NSNumber の例を使用して説明できればいいのですが..ありがとう
5 に答える
主な違いは、メモリ内のどこにとどまるかに関連しています。オブジェクトはヒープに格納され、値の型はスタックに直接格納されます...
heap : 動的メモリ割り当てに使用されるメモリ領域です。
stack : 関数内の自動変数に割り当てられるメモリのセクションです。データは、後入れ先出し (LIFO) 方式を使用してスタックに格納されます。
NSInteger と NSNumber について:
NSInteger は長整数の同義語にすぎませんが、NSNumber は Objective-C クラスであり、具体的には NSValue のサブクラスです。
オブジェクトは:メンバーデータ+データを操作する関数
したがって、プリミティブデータ型は単なるデータであり、それに直接関連するメソッドはありません。
オブジェクトはモジュールのようなもので、データと関数(ここではメソッド)が含まれています。
NSIntegerはプリミティブデータ型です。NSNumberはオブジェクトであり、そのメンバーデータはおそらくNSIntegerです。
プリミティブデータタイプは直接値を格納します。たとえば、NSIntegerは整数値(コンパイルされたアーキテクチャに応じて32ビット整数または64ビット整数のいずれか)を格納します。オブジェクトは、メソッド、プロパティなどを含むクラスのインスタンスです。
NSNumberからNSIntegerを取得するには、次を使用します。
[aNumber intValue];
プリミティブ データ型は、文字列、整数、実数などの基本的な型のデータを格納するために使用されます。したがって、値型の変数を宣言すると、コンパイラはその変数に十分な大きさのメモリのチャンクを確保または割り当てます。参照型が機能する方法は異なります。参照型を使用する場合、メモリ内に作成されるオブジェクトと、オブジェクトを参照する変数の 2 つを使用します。この変数は、プログラムが処理する実際のデータを保持しません。代わりに、参照と呼ばれる特別な値を保持し、変数をオブジェクトにリンクします。
プリミティブ データ型は単なるデータですが、オブジェクト型は参照型として知られています。
これは、2 つの動作データ メンバーとメンバー関数を持つクラスです。