0

我创建了一个列出酒店和房间的快速应用程序。我已经用 Rails 和 postgresql 创建了一个后端,并且已经在 heroku 上安装了它。我正在使用 JSON 在我的 iOS 前端之间来回传递信息。

这就是我想知道的。假设您有一个带有 UIBarButtonItem 的 TableViewController 用于添加新项目。添加了新项目,并且视图应该更新。

你怎么做到这一点?现在我的应用程序再次从服务器检索,这似乎很愚蠢。

我的列表中可能已经有 50 个项目。如果我添加一个新项目,服务器会再次被击中,现在检索 51 个项目。

解决这个问题的最佳方法是什么?

4

1 回答 1

2

同时做两件事。

  1. 发送 POST 请求以制作新项目。
  2. 将项目添加到 UITableView

如:

self.listings addObject:myObject];
[self.tableView reloadData];

最好的做法是假设数据发送成功,并尽快在 UITableView 中显示列表。这将提供快速流畅的体验。95% 的情况下,数据会很好地发送到您的服务器。如果发生错误,您可以简单地让用户知道出现问题并让他们选择重试(将其保存在本地,如果他们在错误后返回添加屏幕,则预填充数据)。

另一个更懒惰和更糟糕的体验选项是,在他们点击“添加”之后,您会显示一个加载指示器并等待服务器响应,然后再将其添加到 UITableView 并刷新 tableview。

但同样 - 您发送到服务器的数据应该与您在本地显示的数据相同*,因此只需创建对象并将其添加到数组中。

注意:* 如果服务器对这些数据做了很多工作,并且您发送的内容您显示的内容不同,您的服务器应该响应 201 createdcreated 对象。序列化响应并将其添加到 UITableView。

于 2014-05-11T02:28:27.770 回答