我偶然发现了一个问题,即我必须在单一TCPConnection
类的视图控制器类中更新我的数据源。我在单例TCPConnection
类中具有服务器的回调函数,但是当我接收数据时,我必须在视图控制器类中更新表视图的数据源。您是否可以提前为此方案提供解决方案。
答案 0 :(得分:2)
我将使用NSNotificationCenter
:
订阅服务(订阅者):
[[NSNotificationCenter defaultCenter] addObserver:<your_controller>
selector:@selector(method)
name:@"name_of_notification"
object:<any_linear_object_u_want>];
现在发件人将发布NSNotificationCenter
:
[[NSNotificationCenter defaultCenter] postNotificationName:@"name_of_notification" object:<any_linear_object_u_want>];
在接收器选择器你可以调用
[self.your_table reloadData];
reloadData
操作可能很重,如果您遇到任何性能问题,请尝试其他重新加载。
祝你好运
答案 1 :(得分:1)
代表团是你的朋友。您将需要声明委托协议(可以在TCPConnection.h中执行此操作),并将委托属性添加到类型为id<TCPConnectionDelegate>
(@property (nonatomic, weak) id<TCPConnectionDelegate> delegate;
)的TCPConnection类中。
然后,您可以将viewController设置为TCPConnection实例的委托。
然后,在TCPConnection实现中,您需要在收到新数据时向您的代理发送消息(将该数据与消息一起传递)。