我创建了一个列出酒店和客房的快速应用程序。我已经用Rails和postgresql创建了一个后端,并且我已经在heroku上得到了它。我使用JSON在我的iOS前端之间来回传递信息。
这是我想知道的。让我们假设您有一个带有UIBarButtonItem的TableViewController用于添加新项目。添加了新项目,视图应该更新。
你是怎么做到的?现在我的应用程序再次从服务器检索,这看起来很愚蠢。
我的列表中可能已有50个项目。如果我添加一个新项目,服务器再次被点击,现在检索51个项目。
最好的方法是什么?
答案 0 :(得分:2)
同时做两件事。
如:
self.listings addObject:myObject];
[self.tableView reloadData];
最好的办法是假设数据已成功发送,并尽快在UITableView中显示列表。这将提供快速和流畅的体验。 95%的时间,数据将被发送到您的服务器罚款。如果发生错误的可能性很小,您可以简单地让用户知道出错了并给他们再次尝试的选项(在本地保存,如果他们在发生错误后返回添加屏幕,则预先填充数据)。 / p>
另一个更懒惰和更糟糕的体验选项是,在他们点击“添加”之后,你会显示一个加载指示器并等待服务器响应,然后再将其添加到UITableView并刷新tableview。
但是再次 - 您发送到服务器的数据应该与您在本地显示的数据相同*,所以只需创建对象并将其添加到数组中。
注意:*如果服务器对此数据执行了大量工作,并且您发送的内容不与您显示的内容相同,则服务器应使用201创建的进行响应创建的对象。序列化响应并将其添加到UITableView。