我是iOS开发的新手,我有简单的目标-c类“MoneyTimer.m”用于运行定时器,从那里我想更新一个UI标签与定时器的变化值。
我想知道如何从非UI线程访问UI元素?我正在使用Xcode 4.2和storyboarding。
我想知道如何从非UI线程访问UI元素?我正在使用Xcode 4.2和storyboarding。
在黑莓中,通过获取事件锁可以从非UI线程更新UI。
//this the code from MyTimerClass {... if(nsTimerUp == nil){ nsTimerUp = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(countUpH) userInfo:nil repeats: YES]; ...} (void) countUpH { sumUp = sumUp + rateInSecH; **//from here i want to update the UI label ** ... }
解决方法
这是最快最简单的做法:
- (void) countUpH{ sumUp = sumUp + rateInSecH; //Accessing UI Thread [[NSOperationQueue mainQueue] addOperationWithBlock:^{ //Do any updates to your label here yourLabel.text = newText; }]; }
如果你这样做,你不需要切换到另一种方法。
希望这可以帮助。
山姆
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。