2008-09-30 9 views
4

Qu'arrive-t-il aux exceptions déclenchées au myMethod: si elles sont appelées via performSelectorOnMainThread:withObject:waitUntilDone: de NSObject?Gestion des exceptions déclenchées lors de la méthode appelée via execSelectorOnMainThread de NSObject: withObject: waitUntilDone:

En particulier, je peux les attraper dans le cadre de l'appel à performSelectorOnMainThread comme ça ...

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

Je me rends compte que la sémantique de ce sont bizarres si waitUntilDone est NO.

Répondre

5

Vous ne serez pas en mesure de les attraper comme ça. Cocoa peut capturer et enregistrer les exceptions à la console, mais il ne les relance pas dans le thread qui a appelé -perform. Au lieu de cela, vous pourriez les attraper dans -myMethod: (ou un wrapper qui appelle -myMethod :) et le faire stocker quelque part que votre autre thread peut les lire.

Questions connexes