@hanting003
2016-05-10T13:56:53.000000Z
字数 578
阅读 871
Brent Simmons对Junior Bontognali的解决方案提出质疑,并撰写了一篇文章"The Non-Reactive Solution",给出了不用响应式编程来解决示例问题的方案。
Simmons认为,Bontognali称“在后台队列加载并解析数据,然后回调到主线程并更新消息队列和UI”是”回调地狱“没有问题,但这一处理方法明显是错误的。他认为,一个View Controller无论在何时发送网络请求都是错误的,而Bontognali所提出的响应式编程的方案并没有避免这个问题。
为此,Simmons提出了他自己的解决方案:首先,设置一个独立的network controller,由它去读取和解析数据,View Controller在需要读取或解析数据时。告诉Network Controller去做相应的处理即可。而Network Controller完成了相应的工作后,可以在主线程中发送通知来告知View Controller。在收到通知后,View Controller再去更新UI。
Simmons认为,在他提出的解决方案中,没有用到锁,所以也不存在Bontognali所提出的后续问题。同时,Simmons也表示,自己并不是说响应式编程或RxSwift不好,只是指出了文中的不妥之处。