2012-07-19 43 views
1

我正在为一个简单的待办事项列表应用程序的iPhone后端轨道。如何将UITableView单元映射到远程数据库后端?

到目前为止,我可以从Web应用程序中将所有tasks拖入待办事项列表中,解析JSON并将其插入到UITableView中。

从轨道JSON响应:

[ 
    {"id":1,"name":"Buy bread"}, 
    {"id":8,"name":"Get gas"}, 
    {"id":14,"name":"Call John"} 
] 

在UITableView中,每个任务的行,单元格的为textLabel是任务的名称:

enter image description here

问题我现在正在如何将单元格与任务的记录标识关联起来。

两个任务可以具有相同的名称,所以我不能只根据名称从哈希中获取id。

我需要记录ID,所以我可以在用户编辑UItableView(例如删除任务)之后回发给Rails应用程序。

我可以在单元格上设置属性吗?我觉得我失去了一些明显的东西。这是我的第一个iPhone应用程序,所以请温和,呵呵。

回答

2

如何获取JSON数组到表中使用的Objective-C数组?您必须再次为该任务的ID执行此操作,并在您的- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法中使用类似theID = [idArray objectAtIndex:indexPath.row];

1

更好的解决方案是在客户端上维护适当的数据模型。你可以使用JSON作为你的模型,但核心数据更健壮一点。你想要的是让你的控制器把它对视图的了解与它对模型的了解联系起来。例如,如果您使用didSelectRowAtIndexPath:您希望使用此索引路径映射到您的模型。

您在单元格上设置属性的解决方案允许您的视图的客户端查询您的数据模型违反了MVC范例的规则。它将你的观点与你的模型相结合,这并不是很好。