【问题标题】:How to map UITableView cell to a remote database backend?如何将 UITableView 单元格映射到远程数据库后端?
【发布时间】:2012-07-19 20:02:31
【问题描述】:

我正在为带有 rails 后端的 iPhone 制作一个简单的待办事项列表应用程序。

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

来自 rails 的 json 响应:

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

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

我现在遇到的问题是如何将单元格与任务的记录 ID 相关联。

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

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

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

【问题讨论】:

    标签: iphone ruby-on-rails api ios4 rubymotion


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-10
        • 1970-01-01
        相关资源
        最近更新 更多