なぜ機能しないのかはすでにわかっていると思いますが、修正方法がわかりません...
MutableNSArrayを使用したデータベース配列オブジェクトがあります。それを「データベース」と呼びましょう。これは、DatabaseRecord型のオブジェクトの配列です。また、ユーザーインターフェイスから操作するアクティブオブジェクトであるCurrentRecordという別のDatabaseRecordオブジェクトもあります。データベースに新しいエントリを追加するときは、次のように呼び出します。
[Database addObject: CurrentRecord];
変更が完了したら、データベースに追加されたレコードを次のように置き換えます。
[Database replaceObjectAtIndex: <index> withObject: CurrentRecord];
私が今気付いたのは、CurrentRecordは次のように定義されたポインターであるということでした。
DatabaseRecord *CurrentRecord;
何が起こっているのかというと、データベース内のすべての新しいエントリがCurrentRecordの値に設定されていると思います。同様に、CurrentRecordを変更すると、NSArray内のすべてのオブジェクトがそれに応じて変更されるため、たとえば、すべて同一の100レコードのデータベースが残ります。
私がやりたいのは、基本的にCurrentRecordの値をMutableNSArrayの適切なオブジェクトにコピーすることです。
ポインタを渡さないなど、これには簡単な修正があると確信していますが、どのように進めるかはよくわかりません。私の質問が明確になっていることを願っています...