Question

Je suis en train de comprendre la signification de la valeur retournée par [NSData writeToFile: Options: erreur:] . La méthode renvoie un BOOL qui, selon la documentation d'Apple est « OUI si l'opération réussit, sinon non. »

Juste assez, mais si ce n'est pas, je l'aurais supposé que le paramètre d'erreur serait alors réglée sur une valeur * NSError récupérable. Cependant dans les résultats que je suis à venir à travers, ce n'est pas le cas. En conséquence, je suis un peu confus, et je ne sais pas comment déterminer ce qui a causé l'échec.

A savoir, j'ai ce code (plus ou moins):

NSError* error = nil;
BOOL success = [data writeToFile: filePath error: &error];
if ( error )
    NSLog( @"error = %@", [error description] );

success se révèle être NO dans le code que je marche, mais l'instruction NSLog est jamais exécutée. Comment ça se fait?

Howard

Était-ce utile?

La solution

Il est possible que data est nil, auquel cas [data writeToFile:error:] retourne nil, mais *error n'est pas réglé.

Autres conseils

La méthode writeToFile retourne TRUE en cas de succès et en cas d'échec -c'est ce que vous voulez vérifier réellement pour.

Alors, essayez:

if(!success)

En tant que votre condition au lieu de si (erreur).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top