Esempio: Il metodo di NSManagedObjectContext
-save:
è dichiarato così:Qual è l'errore Point of (NSError **)?
- (BOOL)save:(NSError **)error
Da NSError è già una classe, e passando un puntatore sarebbe effettivamente avere l'effetto di modificare questo oggetto all'interno della attuazione di -save:
, qual è il punto di passare un puntatore a un puntatore qui? Qual è il vantaggio/senso? esempio
utilizzati:
NSError *error;
if (![managedObjectContext save:&error]) {
// Handle the error.
}
è necessario inizializzare l'errore su nil nell'esempio – ergosys
No, non è assolutamente necessario inizializzare l'errore su zero. Il valore dell'errore è del tutto indefinito al ritorno del metodo ** a meno che ** il metodo non restituisca nil o NO. – bbum
Avevo sempre inizializzato NSErrors su zero, ma suppongo di aver sbagliato nell'interpretazione di come gli errori sono stati gestiti internamente: http://rentzsch.tumblr.com/post/260201639/nserror-is-hard –