0

我偶然发现了我必须从单例TCPConnection类更新视图控制器类中的数据源的问题。我在单例TCPConnection类中有服务器的回调函数,但是当我收到数据时,我必须更新视图控制器类中表视图的数据源。您能否为这种情况提供解决方案,在此先感谢。

4

2 回答 2

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操作可能很繁重,如果您遇到任何性能问题,请尝试其他重新加载。

祝你好运

于 2013-09-02T07:32:48.030 回答
1

代表团是你的朋友。您将要声明一个委托协议(您可以在 TCPConnection.h 中执行此操作),并将委托属性添加到类型id<TCPConnectionDelegate>( @property (nonatomic, weak) id<TCPConnectionDelegate> delegate;) 的 TCPConnection 类中。

然后,您可以将 viewController 设置为 TCPConnection 实例的委托。

然后,在您的 TCPConnection 实现中,您需要在收到新数据时向您的委托发送消息(将该数据与消息一起传递)。

于 2013-09-02T07:12:52.733 回答