什么是SimpleEditableListAppDelegate?

时间:2010-03-11 03:25:04

标签: iphone cocoa cocoa-touch

我正在尝试遵循TableView编程指南,我正在直接从指南中复制代码,但是当我尝试编译时,我得到“SimpleEditableListAppDelegate undeclared”。谷歌只返回节目指南。什么是SimpleEditableListAppDelegate,我该如何使用它?

2 个答案:

答案 0 :(得分:4)

SimpleEditableListAppDelegate是应用程序的委托。这是一个在创建新的Xcode项目时自动创建的类。您的代码未编译的原因是您的项目中不存在SimpleEditableListAppDelegate类,因为您的项目的名称与表视图编程指南中的项目不同。出现“SimpleEditableListAppDelegate undeclared”错误,因为代码中的某处存在对该类不存在的引用。

您应该能够在Xcode的文件侧栏中看到您的应用委托类的名称,因此只要您看到SimpleEditableListAppDelegate,请将其替换为您的实际委托类名称。或者用SimpleEditableListAppDelegate替换[[UIApplication sharedApplication] delegate]的所有实例。

听起来您需要先了解iPhone编程的基础知识,所以您可能需要查看this

答案 1 :(得分:3)

我认为可以肯定地说我们都在关注Apple的这个来源......

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    // If row is deleted, remove it from the list.
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        SimpleEditableListAppDelegate *controller = (SimpleEditableListAppDelegate *)[[UIApplication sharedApplication] delegate];
        [controller removeObjectFromListAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}

SimpleEditableListAppDelegate只是其示例类的名称。在您的代码中,您只想使用表视图的委托名称(即MyAppDelegate)或仅使用“[self removeObjectFromListAtIndex];”而不是创建控制器对我来说工作得很好。

removeObjectFromListAtIndex再次只是您要创建的函数的任意名称,用于删除支持表视图数据的数组的内容。我没有使用函数,而是使用了几行代码。

以下是它对我有用的方法......

 if (editingStyle == UITableViewCellEditingStyleDelete) {
  // Update Model
  NSMutableArray *work_array = [NSMutableArray arrayWithArray:self.city_table];
  [work_array removeObjectAtIndex:indexPath.row];
  self.city_table = [NSArray arrayWithArray:work_array];
  [[NSUserDefaults standardUserDefaults] setObject:self.city_table forKey:KEY_CITY_TABLE];

  // Update View
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
  }

我希望这会有所帮助...... ž@ķ!