schlägt fehl, aber es wird kein Fehlerobjekt zurückgegeben.Warum?
-
13-09-2019 - |
Frage
Ich versuche die Bedeutung des von zurückgegebenen Werts zu verstehen [NSData writeToFile:options:error:].Die Methode gibt einen BOOL-Wert zurück, der laut Apple-Dokumentation „JA“ lautet, wenn der Vorgang erfolgreich ist, andernfalls NEIN.
Gut genug, aber wenn es NEIN ist, hätte ich angenommen, dass der Fehlerparameter dann auf einen abrufbaren NSError*-Wert gesetzt würde.Bei den Ergebnissen, auf die ich stoße, ist das jedoch nicht der Fall.Dementsprechend bin ich etwas verwirrt und weiß nicht, wie ich die Ursache des Fehlers ermitteln kann.
Das heißt, ich habe diesen Code (mehr oder weniger):
NSError* error = nil;
BOOL success = [data writeToFile: filePath error: &error];
if ( error )
NSLog( @"error = %@", [error description] );
success
erweist sich NO
im Code, den ich ausführe, aber die NSLog
Die Anweisung wird nie ausgeführt.Wie kommts?
Howard
Lösung
Es ist möglich dass data
Ist nil
, in welchem Fall [data writeToFile:error:]
kehrt zurück nil
, Aber *error
ist nicht eingestellt.
Andere Tipps
Die WriteToFile -Methode kehrt auf Erfolg und falsch auf das Misserfolg zurück. Sie möchten tatsächlich überprüfen.
Also versuche:
if(!success)
Als Ihre bedingte statt von if (fehler).