0

我正在尝试将对象添加到数组内的数组中。

屏幕

这是我的故事板。屏幕 A 是一个简单的 tableView,其中包含一个带有对象 A 的数组,屏幕 B 将新对象添加到屏幕 A。每个对象 A 都包含一个带有详细信息的数组(对象 B),这些详细信息显示在屏幕 C 中,您可以向对象 A 添加详细信息屏幕 D。

数组

所以我的模型就像你在上面看到的那样。我得到了包含对象 A 的数组 A,每个对象都包含包含对象 B 的数组 B。我的两个数组都是可变的。

对象 A = 预算 对象 B = 项目

我不知道如何将对象 B 添加到数组 B。

- (void)addItemViewController:(AddItemViewController *)controller didFinishAddingItem:(Item *)item

    int newRowIndex = [self.budgets.items count];
[self.dataModel.budgetsList addObjectFromArray: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];

这就是我正在做的票价。我的问题是我将项目(对象 B)添加到预算数组(数组 A)中。:/

提前致谢。

4

3 回答 3

0

当你这样做时:

NSArray *indexPaths = [NSArray arrayWithObject:indexPath];

您正在将演示文稿与数据混合。您在这里需要的是获取此 indexpath 对应的对象元素(在您的情况下为数组)。根据表视图设计模式,每个表视图都从底层数据对象集合中读取其单元格。您是否定义了这个对象(最好在单独的objective-c .m 和.h 文件中)?

至于将数组添加到另一个数组中,NSArray 只期望 NSObject 作为元素,因此将一个添加到另一个数组中非常简单。

NSArray *arrayB = [[NSArray alloc] init]; //any other initialization is good as well
NSArray *arrayA= [NSArray arrayWithObject:arrayB];

上面的代码对代码中的任何一对 NSArray 都有效。

于 2012-11-02T09:12:54.717 回答
0

If you want to add an object to Array B, then Use:

[[[array A objectAtIndex:indexPath] arrayB] addObject:yourObject];

Or you can use (this is an expansion of above code):

ObjectA *temp = [array A objectAtIndex:indexPath];

NSMutableArray *tempArray = [temp arrayB];

[tempArray addObject:yourObject];
于 2012-11-02T09:18:16.497 回答
0

投射你的对象 BItem然后做

[self.dataModel.budgetList replaceObjectAtIndex:11 withObject:(Item)item];

此代码假设您要替换 A 中的现有对象,并且索引为 11。如果要添加,只需使用insertObjectAtIndex: withObject:

于 2012-11-02T09:18:50.787 回答