我是iOS开发中的新手,我在这里有问题考虑以下代码
[activityIndicator startAnimating];
[self startAnewOperationInSepThread];
[self startAnotherOperationInSepThread];
我的理解是,当执行第一行时,活动指示符将在主线程中启动。所以现在主线程负责运行活动指示器。如何调用后续操作。
答案 0 :(得分:1)
使用performSelectorInBackground
[self performSelectorInBackground:@selector(yourmethod:) withObject:nil];
答案 1 :(得分:0)
没有。执行第一行时,不启动活动指示器。一旦主循环调用主线程中的方法结束,它就会启动。虽然您的方法在主线程中运行,但UI不会改变任何内容。
答案 2 :(得分:0)
是的,你打电话给[activityIndicator startAnimating];从主线程,这只是一个启动动画的调用。实际的动画是在一个单独的线程上完成的。
即使活动指示仍然是动画,并不意味着你不能在主线程上做任何事情。因为他的职责(称为startAnimating方法)结束了。
在activityIndicator上调用startAnimating后,它跳转到下一行并执行[self myMethod1];然后[self myMethod2];对于以下代码。
不要让它们变得复杂,就是这么简单
[activityIndicator startAnimating];
[self myMethod1];
[self myMethod2];
答案 3 :(得分:0)
你必须选择它
1>你可以在不同的线程上运行这两种方法 - 比如它
[NSThread detachNewThreadSelector:@selector(startAnewOperationInSepThread) toTarget:self withObject:nil];
[NSThread detachNewThreadSelector:@selector(startAnotherOperationInSepThread) toTarget:self withObject:nil];
OR
2>如果你想要在线程完成后另一个将开始然后首先调用startAnewOperationInSepThread方法并在其内部定义调用startAnotherOperationInSepThread之类的
-(void)startAnotherOperationInSepThread
{
[self startAnotherOperationInSepThread];
}
如果您仍然遇到任何问题,请告诉我。感谢