1

私はアプリストア用の最初のアプリに取り組んでいます。以前にプログラミングを行ったことがありますが、これは私の最初の iOS アプリです。

私の問題には少し説明が必要です。テーブルビューに基づいてこのアプリを入手しました。メイン画面(画面A)、項目追加画面(画面B)、詳細画面(画面C)、最後に詳細項目追加画面(画面D)で構成されています。

私のすべての画面は、画面 A からセグエします。画面 A は、オブジェクトを含む配列で構成されています。各オブジェクトは詳細の配列を保持します。画面 A で行/オブジェクトをタッチすると、画面 C に移動し、指定された行/オブジェクトのすべての詳細を確認できます。

画面 A と画面 B の間でデリゲートを動かしました。

しかし、頭痛の種は、画面 A の特定のオブジェクトに詳細を追加したいときです。画面 A のオブジェクトに詳細オブジェクトを追加できるようにしたいのですが、既に配列にあるオブジェクト配列にアクセスするにはどうすればよいですか? ?

- (void)addBudgetViewController:(AddBudgetViewController *)controller didFinishAddingItem:(Budgets *)budget
{

int newRowIndex = [self.dataModel.budgetsList count];
[self.dataModel.budgetsList addObject:budget];

NSLog(@"Budget added");

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:newRowIndex inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];

[self dismissViewControllerAnimated:YES completion:nil];

}

画面 B から画面 A にアイテムを追加する方法を次に示します。私の BudgetsInList は、画面 A の予算の変更可能な配列です。しかし、budgetsInList 配列のオブジェクト配列にアイテムを追加したい場合、コードはどのように見えるでしょうか?

スクリーン

配列

配列 A は、画面 A に表示される予算のリストです。配列 B は、配列 A 内の配列です (これも変更可能です)。画面 B と D は、画面 A に予算を追加し、画面 C にアイテムを追加します。

- (void)addItemViewController:(AddItemViewController *)controller didFinishAddingItem:(Item *)item
{
int newRowIndex = [self.budgets.items count];
[[self.dataModel.budgetsList objectAtIndex:newRowIndex] addObject:item];

NSLog(@"Item with name %@ added", item.name);

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:newRowIndex inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];

[self dismissViewControllerAnimated:YES completion:nil];

}

これが私が試みていることですが、アイテムオブジェクトを予算配列であるbudgetsList配列に追加しているため、これは機能しません。私が欲しいのは、項目オブジェクトを項目配列 (配列 B) に追加することです。しかし、どうすればそれを行うことができますか?

これがいくつかの写真に役立つことを願っています。:-)

よろしくお願いします アンダース・H・オプストラップ

4

2 に答える 2

0

私はあなたの質問を理解するのが難しいことを認めなければなりません.とにかく私は明確に見える何かに答えようとします:

しかし、budgetsInList 配列の objects 配列にアイテムを追加したい場合、コードはどのように見えるでしょうか?

この2つの配列があるとしましょう:

配列 A と配列 B、どちらも変更可能です。

私が理解している場合、あなたの状況は多かれ少なかれこのようなものです: 配列 B は配列 A 内のオブジェクト (例では唯一のもの) であり、配列 B にオブジェクトを追加したい

[[arrayA objectAtIndex:index_of_array_b_in_a] addObject:the_object_you_want_add]

これがあなたの問題であるかどうか教えてください。

于 2012-10-29T20:34:53.680 に答える
0

配列 A が配列の配列である場合、たとえば [arrayA objectAtIndex:0] は最初の配列 (説明では arrayB) を提供します。したがって、arrayA の最初の配列にオブジェクトを追加するには、次のようにします。

[[arrayA objectAtIndex:0] addObject:anObject];
于 2012-10-30T04:20:07.917 に答える