Der Inhalt wird nicht aus der Datei abgerufen
-
01-10-2019 - |
Frage
ich dieses verdrahtete Problem habe, kann ich nicht den Inhalt aus der Datei erhalten und initiieren meine NSMutableArray mit ihm.
Hier ist mein Code:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"Does file exist?: %i", [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]]);
NSMutableArray *tempArr;
tempArr = [[NSMutableArray alloc] initWithContentsOfFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]];
Beim Versuch, diese, initWithContentsOfFile kehrt (null). Die Zeile überprüft, ob die Datei vorhanden druckt ‚1‘ an die Konsole.
Dies ist der Code Ich verwende die Daten zu speichern:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[length.text writeToFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory] atomically:NO];
Ich bin mit mehr oder weniger genau den gleichen Code in einem anderen Programm ohne Probleme.
brauchen wirklich Hilfe hier, vielleicht nur für den Moment, wo ich bin blind ...
Lösung
Die Dokumentation für NSArray der initWithContentsOfFile:
Methode sagen wir:
Rückgabewert Ein Array, den Inhalt der Datei enthalten initialisiert spezifiziert durch aPath oder gleich Null, wenn die Datei kann nicht geöffnet oder den Inhalt der sein Datei kann nicht in ein Array analysiert werden. Das zurückgegebene Objekt vielleicht anders als der ursprüngliche Empfänger.
Sie beinhalten nicht die Deklaration von length
im Code-Schnipsel, aber ich vermute, dass length.text
kehrt ein NSString-Objekt, kein NSArray. So müssen Sie das zurück aus einer Datei mit initWithContentsOfFile:
von NSString zu lesen, nicht NSArray.
Andere Tipps
Wenn Sie versuchen, einen Array aus dem Inhalt einer Datei zu erstellen, die Datei muss in plist Format sein, und die am weitesten außen plist Element <array>
sein muss . Wenn es nicht das Format hat, wird die Initialisierung fehlschlagen und das Array wird nil
sein.
Sie erstellen die Datei durch eine NSString
in eine Datei zu schreiben, was bedeutet, sollten Sie wahrscheinlich es in zu einem NSString
liest, kein NSArray
.