• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Pfad auf dem iOS Gerät gesucht

JaCyB

Golden Delicious
Registriert
11.08.11
Beiträge
8
Hallo ich habe eine Frage:
Ich habe meine Highscoreliste mit folgendem Code abgespeichert:

Code:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:highscoreArray];
    NSString *path = @"/Users/Admin/Documents/myApp/archive.dat";
    [data writeToFile:path options:NSDataWritingAtomic error: nil];

Dies funktioniert im Simulator auch sehr gut, nur an welchem Speicherort muss meine "archive.dat" ablegen, sodass das iPhone darauf zugreifen kann?

Danke für eure Hilfe.
 

JaCyB

Golden Delicious
Registriert
11.08.11
Beiträge
8
Hallo,
danke für deine schnelle Antwort
könntest du mir bei NSSearchPathForDirectoriesInDomains genauer erklären welche Parameter gewünscht sind. Ich werde aus der Erklärung in der Dokumentation nicht so ganz schlau, vorallem verstehe ich nicht warum das ganze ein Array ist?

Ich habe es zwischenzeitlich mit NSURL versucht:
Code:
// Locating
NSURL* url = [[NSBundle mainBundle] URLForResource:@"archive" withExtension:@"dat"];

NSLog(@"Die URL lautet: %@", url);

// Archive
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:highscoreArray];
    NSString *path = [NSString stringWithFormat:@"%@", url];
    [data writeToFile:path options:NSDataWritingAtomic error: nil];

Bekomme nun beim Aufruf jedoch (null) ???

Code:
NSString *path = [NSString stringWithFormat:@"%@", url];
    highscoreArrayName = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

PS: Gamecenter wird noch nachgereicht ;), erstmal möchte ich aber das es lokal funktioniert.
 

frostdiver

Zwiebelapfel
Registriert
19.06.12
Beiträge
1.285
In das mainBundle kannst du nicht schreiben. Das ist der Kram, den du mit deinem Programm auslieferst.
Wenn es NSSearchPath... sein soll. Dann z.B. so:
Code:
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath=[documentsDirectory stringByAppendingPathComponent:@"highscore.dat"];
Wobei NSApplicationSupportDirectory wahrscheinlich besser wäre als NSDocumentDirectory.