- (void) myFunction {
User *user = [[User alloc] init];
user.property = @"value";
[user login:@"username" password:@"pwd" delegate:nil];
while (NO == user.runLoopEnd) {
[[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
[user release];
...
}
我遇到了上面的代码并且不理解While loop
的用法。
任何人都可以在上面的代码中解释While loop
的目的吗?
答案 0 :(得分:0)
辅助线程在执行分配的任务/方法后将死亡。 while循环用于保持线程处于活动状态,直到满足条件为止。
似乎myFunction方法在辅助线程中执行。 while循环用于使线程保持活动状态,直到user.runLoopEnd设置为TRUE。 Runloop定期检查user.runLoopEnd条件并继续循环直到设置完毕。
在这里,您希望保持辅助线程保持活动状态,直到登录方法返回响应。 (我猜登录方法使用异步api调用)。登录api返回后,它将user.runLoopEnd设置为TRUE,while循环将被破坏。因此线程可以在完成方法执行时终止。