In Objective-C, ci sono diversi metodi come initWithContentsOfFile:encoding:error:
dove si passa in un riferimento a un oggetto NSError
per il parametro error:
. In questo esempio, il valore dell'oggetto NSError
passato può cambiare in base a ciò che accade al runtime quando viene chiamato il metodo e se il corpo del metodo è stato eseguito in un certo modo. In un certo senso, penso a questo oggetto NSError
come una sorta di come un secondo valore di ritorno dal metodo e differisce solo da un oggetto anObject
nell'istruzione return anObject;
in quanto quando viene chiamata questa istruzione, l'esecuzione lascia il metodo .
Quindi la mia domanda è, non solo nel contesto della gestione degli errori in Objective-C, ma in generale, quando si dovrebbe usare un parametro "out" al posto di restituire detto valore in una dichiarazione di ritorno?