如何使用 Siesta Swift 使另一个 ViewController 的 post 请求返回的响应对象附加到 TableViewController
Posted
技术标签:
【中文标题】如何使用 Siesta Swift 使另一个 ViewController 的 post 请求返回的响应对象附加到 TableViewController【英文标题】:How to make the response object that another ViewController's post request returns append to a TableViewController with Siesta Swift 【发布时间】:2018-11-14 00:36:15 【问题描述】:我是 Swift 初学者,非常抱歉。对于 Siesta,我想在 ViewController 中发出一个发布请求,然后将请求返回的 Entry 对象添加到 TableViewController。在我的视图控制器中:
EntryAPI.sharedInstance.addEntry()
API 代码:
func addEntry() -> Request
return newEntry().request(.post, json:["foo": "bar"])
func newEntry() -> Resource
return service
.resource("/entry")
在 post 请求之后,ViewController 对 TableViewController 执行 unwind segue,当然是在 post 请求完成之前。我不确定我会在代码中的哪个位置获取响应并调用 TableViewController 中的一个函数,该函数将新的 Entry 对象附加到条目列表中。
我不确定是否应该使用onSuccess()
将新的Entry 对象从addEntry()
函数传递给TableViewController,或者TableViewController 是否可以拥有newEntry()
资源并知道发布请求何时完成。我也不确定我是否以正确的方式处理这件事。提前致谢。
【问题讨论】:
为您的请求添加一个观察者 (bustoutsolutions.github.io/siesta/guide/observers) 并在它完成时更新您的 tableview 中的数据。 谢谢。所以澄清一下,我是将 TableViewController 添加为观察者还是 ViewController?如果是 ViewController,如果 segue 在完成之前发生,我如何将新的 Entry 对象发送到 TableViewController? 观察您在 Siesta 中对某些外部 API 的发布请求。 【参考方案1】:我可以将newEntry()
资源添加到 TableViewController 并更改 API 方法:
func addEntry() -> Request
let resource = newEntry()
return resource.load(using: resource.request(.post, json:
["foo": "bar"]).onSuccess _ in)
现在resourceChanged
函数将在我可以处理响应对象的地方被调用。答案在文档中。
【讨论】:
以上是关于如何使用 Siesta Swift 使另一个 ViewController 的 post 请求返回的响应对象附加到 TableViewController的主要内容,如果未能解决你的问题,请参考以下文章