您好我想在我的代码中将字符串传递给updateProgressBar函数以显示一些数据。所以我怎么做呢
[self performSelectorOnMainThread:@selector(updateProgressBar) withObject:nil waitUntilDone:NO];
我的功能看起来像这样
-(void)updateProgressBar
{
lbl.text = ?
}
答案 0 :(得分:0)
在updateProgressBar上传递参数有不同的方法。
你可以这样做
NSString * alpha;
//assign some value to alpha
[self performSelectorOnMainThread:@selector(updateProgressBar:) withObject:alpha waitUntilDone:NO];
-(void)updateProgressBar:(NSString *)beta
{
lbl.text = beta;
}
或者你也可以使用performSelectorOnMainThread传递多个参数。 你可以在google上搜索很多有关此内容的教程。
答案 1 :(得分:0)
您可以使用GCD来避免编写单独的方法:
dispatch_async(dispatch_get_main_queue(), ^{
lbl.text = newLabel;
});
要解决此答案评论中所述的问题(__NSAutoreleaseNoPool(): Object 0x55f3ec0 of class NSCFString autoreleased with no pool in place
):
您最有可能在没有自动释放池的后台线程中执行此代码段。您可以create one或避免使用autorelease
。