我是 iOS 开发的新手,并试图弄清楚这里发生了什么。我有一个带有多个 ViewController 和类的选项卡栏应用程序。我的一个课程被调用并更新了运行良好的 uilabels。然后调用另一个类,它也运行一个后台循环,该循环旨在更新同一 ViewController 上的一些其他 uilabels,它们会使用循环中的第一个条目更新一次,但不会在循环保持在后台运行时更新。我可以看到循环仍在运行,并且在我使用 NSLog 记录输出时细节正在发生变化。
ViewController 还支持旋转,如果我旋转屏幕,则循环中的数字将被绘制到 uilabel 并固定,直到我再次旋转屏幕,即如果我将循环设置为 5 然后重置,具体取决于在循环我旋转屏幕将取决于 1 到 5 之间的哪个数字被绘制到 uilabel。
在单个 ViewController 应用程序上运行良好,循环运行并且 uilabels 按预期实时更新。
从 [super viewDidLoad] 调用更新 uilabels 的类。
谢谢
这是带有循环的类:-
+ (void)Loop:(FirstViewController *)vc
{
NSLog(@"start");
static NSUInteger counter1 = 0;
NSLog(@"with count %d", counter1);
counter1++;
NSLog(@"count ++ %d", counter1);
NSString *label01 = [NSString stringWithFormat: @"%d", counter1];
//update uilabel
vc.cha01.text = label01;
if (counter1 >= 5) {
counter1 = 0;
}
// run loop with 1 second delay
[self performSelector:@selector(Loop:) withObject:nil afterDelay:1];
}