簡單的問題:會發生什麼,如果我這樣做:Objective-C performSelectorInBackground - 所謂的方法在哪裏運行?
- (void)viewDidLoad
{
[self performSelectorInBackground:@selector(myBGMethod) withObject:nil];
}
-(void)myBGMethod
{
[self myOtherMethod];
}
-(void)myOtherMethod
{
NSLog(@"This is not Inception");
//some more code here
}
將在myOtherMethod
的NSLog()
和其他代碼在主線程或後臺運行?
Xcode調試器全部回答。你可以在'NSLog()'上放一個斷點,你可以看到它正在運行的線程。 – FluffulousChimp
想一想 - 如果一個調用將您切換回主線程,那麼您將運行您在主線程中調用的每個iOS函數,這樣就消除了切換到背景的要點。 –