背景线程 - >更新UI

时间:2011-11-03 18:57:55

标签: objective-c ios5

我正在下载并解析XML文档。在此期间,我想更新我的UIProgressView。我知道我必须在主线程中执行此操作,而不是在解析文档的后台线程中执行此操作。

但我的问题是,当我尝试这个时:

[self performSelectorOnMainThread:@selector(setProgressStr) withObject:[NSString stringWithFormat:@"%f", updateTo] waitUntilDone:NO];

我通过NSString发送它,因为浮点不起作用。但现在我得到了下一个错误:

-[TDFetch setProgressStr]: unrecognized selector sent to instance 0x6b9a700

我做错了什么?

2 个答案:

答案 0 :(得分:4)

如果您尝试使用的方法带有参数,则表示名称中包含冒号 - 冒号实际上是名称的部分。当你拿到选择器时需要包含它:

@selector(setProgressStr:)

答案 1 :(得分:2)

看起来你忘记了选择器名称之后的':'。 试试

[self performSelectorOnMainThread:@selector(setProgressStr:) withObject:[NSString stringWithFormat:@"%f", updateTo] waitUntilDone:NO];