4

myMethod:如果通过 NSObject 调用in 时引发的异常会发生什么performSelectorOnMainThread:withObject:waitUntilDone:

特别是,我可以在这样的调用范围内捕获它们performSelectorOnMainThread吗...

@try {
    [self performSelectorOnMainThread:@selector(myMethod) withObject:nil waitUntilDone:YES];
} @catch(NSException *e) {
    //deal with exception raised in myMethod here??
}

我意识到如果 waitUntilDone 是 ,它的语义很奇怪NO

4

1 回答 1

5

你将无法像那样抓住它们。Cocoa 可以捕获异常并将其记录到控制台,但它不会在调用 -perform 的线程中重新引发它们。相反,您可以在 -myMethod: (或调用 -myMethod:) 的包装器中捕获它们,并将它们存储在其他线程可以读取它们的地方。

于 2008-09-30T23:52:12.750 回答