我正在开发应用程序商店的第一个应用程序。我以前做过编程,但这是我的第一个iOS应用程序。
我的问题需要一些解释: 我根据tableviews得到了这个应用程序。它包括以下内容:我的主屏幕(屏幕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数组中向items数组中添加项目,那么代码是如何形成的?
数组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)。但是我该怎么做?
希望这有助于一些照片。 :-)
由于 关心Anders H. Opstrup
答案 0 :(得分:0)
我必须承认,这很难理解你的问题,无论如何我试着回答一些看似清楚的事情:
但是如果我想将项添加到budgetsInList数组中的objects数组中,那么代码会是什么样的?
让我们有这两个数组:
阵列A和阵列B,两者都是可变的。
如果我理解了你的情况或多或少是这样的:数组B是数组A中的一个对象(示例中唯一的一个),并且你想要一个对象添加到数组B
[[arrayA objectAtIndex:index_of_array_b_in_a] addObject:the_object_you_want_add]
如果这是你的问题,请告诉我。
答案 1 :(得分:0)
如果数组A是数组数组,那么[arrayA objectAtIndex:0]将为您提供第一个数组(在您的解释中为arrayB)。因此,要将对象添加到arrayA中的第一个数组,只需执行以下操作:
[[arrayA objectAtIndex:0] addObject:anObject];