3

任何人都可以告诉我当我调用方法使用performSelectorOnMainThread和调用相同的方法而不使用 performSelector 时有什么不同。

对于 Exa。

-(void)sampleCALL{
     ..........
}

现在使用这两个 senario 调用此方法:

[[self performSelectorOnMainThread:@selector(sampleCALL) withObject:nil waitUntilDone:NO];];

或者

[self sampleCALL];

这两种方法是如何执行的?请帮助我正确地找到这个概念。

4

1 回答 1

2

在第一种情况下,[self sampleCALL];您的方法将在当前控制所在的线程中调用。它将维护所有堆栈操作,就像它为从另一个方法调用方法所做的那样。

尽管

[[self performSelectorOnMainThread:@selector(sampleCALL) withObject:nil waitUntilDone:NO];];

无论控制当前线程是什么,都调用主线程中的方法。所有 UI 操作始终在主线程中执行。

于 2012-05-21T11:43:03.473 回答