首先,我承认在Objective-C和Xcode方面我有点像菜鸟,但我已经阅读了很多Apple的入门文档和教程。话虽这么说,我真的不确定如何处理这个看似基本的API查询问题。
我正在开发一个iPhone应用程序,我使用外部库来调用API。结果由自定义委托类处理,这是实现这些方法所必需的:
readerDidStart
readerDidFinish
我可以将API调用的结果存储在我的自定义委托类中,没有任何问题。问题是我需要等到readerDidFinish
委托方法被调用才能访问它们。
我的问题:有效处理这种情况的最佳方法是什么?我猜我会在readerDidFinish
方法实现中更新我的UI,但我不确定Apple库中是否存在处理此问题的内容
答案 0 :(得分:1)
视图控制器也是委托吗?在这种情况下,您可以在readerDidFinish方法中进行UI更新。请记住始终在主线程中更改UI。
如果委托是一个单独的类(不是视图控制器),那么您可能希望使用NSNotification实现一个观察者模式。
您可以继承NSNotification并在调用readerDidFinish方法时触发它。
视图控制器应在viewWillAppear中将自身添加为观察者,并在viewWillDisappear中将其自身移除。
以下是Mattt Thompson对通知的非常好的介绍:http://nshipster.com/nsnotification-and-nsnotificationcenter/
如果您需要更多帮助,请发布一些代码。
答案 1 :(得分:1)
这两个代表方法是1种类型的"回叫函数"第三方库调用以让您的应用知道这些事件。只需实现这两种方法。
没有有效的解决方案,你的app应该等到两个事件都被调用。
如果您不希望自己的用途触及任何UI项目,可以使用进度视图来绘制多刺的圆形物品。我喜欢SVProgressView。