NSFileManager will die Daten nicht löschen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSFileManager will die Daten nicht löschen

    Hallo,

    ich hab ein Array mit NSURLs.

    Nun möchte ich die Dateien löschen die auf den URLs liegen.
    Es handelt sich um m4a Dateien im Documents Ordner eines iOS Projektes

    Quellcode

    1. for (NSURL * path in _audioFilePaths) {
    2. NSError *error;
    3. BOOL success = [[NSFileManager defaultManager] removeItemAtPath:path.absoluteString error:&error];
    4. if (!success) {
    5. NSLog(@"Error removing file at path: %@", error.localizedDescription);
    6. } else {
    7. NSLog(@"File removed at path: %@", error.localizedDescription);
    8. }
    9. }
    Alles anzeigen


    Nun passiert aber nichts. Die Daten werden nicht gelöscht. Es scheint so als ob removeItemAtPath: überhaupt nix macht. Die Variable success wird nicht mit einem Wert belegt.

    Quellcode

    1. ​po [_audioFilePaths[0] isKindOfClass:[NSURL class]]
    2. 0x00000001


    Das Array besitzt eine URL

    Quellcode

    1. ​po _audioFilePaths[0]
    2. file:///Users/miralemcebic/Library/Application Support/iPhone Simulator/7.1/Applications/8E215B3C-42EC-4866-BD72-352987203FCC/Documents/Aufnahme-T-st-15-7.m4a


    Kann mir hier jemand weiterhelfen? ?(
  • ​Da gibt es das schöne NSError Objekt, dass gefüllt werden sollte, wenn es zu nem Fehler kommt... was steht dann dort drin?

    ​Ist error nach dem Aufruf nil?

    Quellcode

    1. (lldb) po error
    2. nil
    3. (lldb)


    ​Wenn Du schon passende File URLs hast, warum verwendest Du dann nicht removeItemAtURL:error: ?

    Danke, hat wunderbar geklappt.

    Aber warum funktionierte mein Ansatz nicht?
  • Miralem23 schrieb:

    po [_audioFilePaths[0] isKindOfClass:[NSURL class]]

    Vorsicht, das ist ganz übel. Einfache Datentypen solltest Du besser mit p und nicht mit po (= print object) anzeigen, da letzteres zu einem Signal führen kann. po versucht nämlich eine Methode auf dem Ausdruck auszuführen. Bei einem einfachen Datentyp verwendet der Debugger den Wert als Adresse, und peng! Allerdings musst Du noch casten: p (BOOL)​[_audioFilePaths[0] isKindOfClass:[NSURL class]]
    „Meine Komplikation hatte eine Komplikation.“