Download von einer plist

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

  • Download von einer plist

    Hi,

    ich habe eine plist in meiner App. Dort sind mehrere Werte abgespeichert die sich jeden Tag ändern könnten.
    Nun möchte ich die Datei herunterladen und ersetzten.
    Leider funktioniert mein Code nicht. Wisst ihr wo mein Fehler liegt?


    Quellcode

    1. NSString *path = [[NSBundle mainBundle] bundlePath];
    2. NSString *finalPath = [path stringByAppendingPathComponent:@"satz.plist"];
    3. NSURL *theFileURL = [NSURL URLWithString:@"https://domain.com/satz/update/satz.plist"];
    4. NSDictionary *replace = [[NSDictionary alloc] initWithContentsOfURL:theFileURL];
    5. if (replace != nil){
    6. [replace writeToFile:finalPath
    7. atomically:YES];
    8. }
    Alles anzeigen



    Vielen Dank!
    Grüße Stefan

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von stefan_13_ ()

  • Quellcode

    1. NSString *stringURL = @"https://domain.de/satz/update/update.php";
    2. NSURL *url = [NSURL URLWithString:stringURL];
    3. NSData *urlData = [NSData dataWithContentsOfURL:url];
    4. if ( urlData )
    5. {
    6. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    7. NSString *documentsDirectory = [paths objectAtIndex:0];
    8. NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"satz.plist"];
    9. [urlData writeToFile:filePath atomically:YES];
    10. }
    Alles anzeigen


    Haben den Code umgeschrieben, nur wird die Datei im Ordner Documents gespeichert und nicht direkt.
    Wisst ihr wo mein Fehler liegt?



    Vielen Dank! :)
    Grüße Stefan
  • Wie schon gesagt darfst und kannst Du bei iOS nicht ins App Bundle schreiben. Dafür gibt es extra Verzeichnisse wie z.B. das Document Directory und andere.

    Wenn Du die plist in der App laden möchtest, dann solltest Du zuerst versuchen diese aus dem Document Directory (bzw. in welches Verzeichnis Du diese beim Download vom Server gespeichert hast) zu laden. Ist die Datei dort nicht vorhanden (weil es noch keinen Download vom Server gab), dann lädst Du die "original" Datei aus dem App Bundle.

    Zu diesem Thema sollte es hier auch schon einen Thread mit weiteren Infos geben.