配列内のオブジェクトのメモリ割り当てに関して質問があります。オブジェクトの配列を作成しようとしていますが、コンパイル時に必要なオブジェクトの数を知る方法がないため、必要以上のメモリを予約したくありません。
私がやりたいのは、必要に応じてメモリを割り当てることです。これを行う方法は、ユーザーが「追加」ボタンをクリックすると、配列が1つの追加オブジェクトによって増加し、新しいオブジェクトに必要なメモリが割り当てられることです。
Objective C についての私の初心者の理解 (私は約 20 年前にプロのプログラマーであり、最近再びコードを書き始めたばかりです) で、次のコード セグメントを思いつきました。
まず、オブジェクトを宣言しました。
NSObject *myObject[1000]; // a maximum number of objects.
次に、ユーザーが [追加] ボタンをクリックすると、割り当てコードを使用してメソッドが実行されます (注: 変数 i は値 1 から始まり、[追加] ボタンがクリックされるたびに増加します)。
++i
myObject[i] = [[NSObject alloc] init];
したがって、1000 個の配列オブジェクトすべてをすぐに割り当てるのではなく、実際に必要なオブジェクトにのみメモリを割り当てることを望んでいます。
これを正しく解釈していますか?つまり、宣言に記載されている配列要素の数は、その時点で割り当てられているメモリの量ではなく、配列要素の最大可能数であるという私の解釈は正しいですか? これが正しい場合、理論的には次の宣言になります。
NSObject *myObject[10000];
宣言よりも多くのメモリをプルしません:
NSObject *myObject[5];
誰かが私がこのプロセスを正しく理解していることを確認できますか?これが頭の中で混乱している場合は教えてください。:)
ありがとう!