【发布时间】:2012-02-14 02:34:58
【问题描述】:
我有一个主视图控制器,其按钮连接到名为REFRESH() 的 IBAction。
在REFRESH() 操作中,我调用了一个类中的一个函数,该函数从 WebService 发出对 XML 的异步请求,并根据该数据创建一个对象。
主视图控制器上还有另一个名为 ``(void) RECEIVED_DATA() 的函数,它接受从我的类文件中的 XML 创建的对象。只有在从服务器接收回数据后,才会从我的类文件中调用此函数。那时,我想在主视图控制器的标签上设置文本。不幸的是,我不能。我可以更改按钮单击附加的REFRESH() 函数中的 label.text,但不能在从类文件返回数据时调用的 void 函数中更改它。
这里有两个功能:
-(void)refresh
{
funcs *fn = [[funcs alloc]init]; //this is my class file which handles http request and response
[fn GetData];
}
-(void)received_Data:(DataObject *)x
{
myLabel.text = [x displayData]; //myLabel is a UILabel on my MainViewController and the displayData function returns an NSString. It won't even let me use myLabel.text = @"test"; Nothing happens.
}
我是否应该寻找一种方法将RECEIVED_DATA() 函数绑定回viewDidLoad() 函数?
更新 - 另一位用户表示,由于数据是由单独的线程检索的,因此它不会影响任何 UI,因为 UI 在主线程上运行。我将发布一个单独的问题,看看是否有人有解决这个问题的方法。
【问题讨论】:
标签: iphone xml cocoa-touch ios5