我有一个类(Ntwk)我想用于网络通信。该类将处理所有网络I / O.但是对于异步I / O,我必须在Ntwk中声明didReceivData委托,这完全破坏了我的数据流。这就是为什么 -
ViewController正在创建一个Ntwk对象并在其中调用PostData函数并立即返回。那么现在ViewController如何从调用中获取数据?这必须是一个已经解决的问题而且obj-c可能已经提供了一种方法来做到这一点,但我完全迷失了。我正在学习这个,所以我正在寻求帮助。
我看到两种解决方法 -
以某种方式在ViewController中定义和调用didReceiveData委托。这将是非常棒的。
从ViewController传递一个块或一个函数指针到Ntwk对象,并从Ntwk对象内的didReceiveData委托内部调用它。
可以做其中任何一个吗?
这样做的正确方法是什么?
答案 0 :(得分:0)
您提到的方法非常正确但是如果您在同一个类中声明了DidReceiveData方法,那么我们无法实现MVC,并且当您为该功能创建Network类时,您可以使用Block callback reference或者您可以使用Delegate -Protocol方法,为此您需要将委托设置为self作为调用类的引用,然后当您的任务完成时,只需从此委托引用中调用Protocol中的方法。 这可能会解决您的问题。