我在设置表格视图时遇到问题。 我有一个TableView" Entries"哪里会有我的参赛作品清单。 我有一个秒TableView" AddEntry"我有几个Textfields,它将定义一个Object的属性。按下"添加"对象名称显示在"条目" TableView中。
我的问题出现了:我希望以后能够通过点击它来编辑Objects属性。
例如:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:kEditSegueIdentifier]) {
edited = YES;
AddEntry *controller = [[[segue destinationViewController] viewControllers] objectAtIndex:0];
EntryObject *entry = self.entryObjectArray[self.indexPathInt];
controller.property1 = entry.property1;
controller.property2 = entry.property2;
controller.property3 = entry.property3;
}
}
稍后将填写" AddEntry"中的文本字段。使用所选对象属性查看。到目前为止一切都很好。
如果我现在(有或没有更改对象属性),请单击"完成"将调用此方法,它将创建一个新的Row,其中包含一个新创建的Object,它与我想要编辑的对象完全相同。
- (void)saveEntryDetails:(EntryObject *)entry {
if (edited == YES) {
[self.entryObjectArray replaceObjectAtIndex:self.indexPathInt withObject:entry];
}
[self.entryObjectArray addObject:entry];
if (self.entryObjectArray.count < 1) {
NSArray *indexPaths = @[[NSIndexPath indexPathForRow:[self.entryObjectArray count] inSection:0]];
[self.tableView insertRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationFade];
}
else {
NSArray *indexPaths = @[[NSIndexPath indexPathForRow:[self.entryObjectArray count]-1 inSection:0]];
[self.tableView insertRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationFade];
}
}
我如何区分&#34;对象是新创建的&#34;和&#34;对象已编辑&#34;?
另外如何在数组中替换已编辑的对象?
答案 0 :(得分:0)
创建一个entryObjectCompareArray作为原始数组,然后与entryObjectArray进行比较,
NSMutableArray *leftArray = [NSMutableArray arrayWithArray:entryObjectCompareArray];
[leftArray removeObjectsInArray:entryObjectArray];
leftArray将是已编辑的对象,其他是新创建的。