échoue, mais aucun objet d'erreur est renvoyé. Pourquoi?
-
13-09-2019 - |
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
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).