Exemple: La méthode -save:
de NSManagedObjectContext
est déclarée comme ceci:Quel est le point d'erreur (NSError **)?
- (BOOL)save:(NSError **)error
Depuis NSError est déjà une classe, et le passage d'un pointeur aurait effectivement pour effet de modifier cet objet dans la mise en œuvre de -save:
, quel est le point de passer un pointeur sur un pointeur ici? Quel est l'avantage/le sens?
Exemple d'utilisation:
NSError *error;
if (![managedObjectContext save:&error]) {
// Handle the error.
}
vous devez initialiser l'erreur à zéro dans cet exemple – ergosys
Non, il n'y a absolument pas besoin d'initialiser l'erreur à zéro. La valeur de l'erreur est entièrement indéfinie lors du retour de la méthode ** sauf si ** la méthode a renvoyé nil ou NO. – bbum
J'avais toujours initialisé NSErrors à zéro, mais je crois que je me suis trompé dans mon interprétation de la façon dont les erreurs ont été traitées en interne: http://rentzsch.tumblr.com/post/260201639/nserror-is-hard –