Frage

Meine Frage oben im Titel angegeben wird, aber ich werde es schreibe hier wieder

Ist es möglich, eine andere plist in das Anwendungspaket Code weise ??

kopieren

Das ist eigentlich ein bisschen auf meiner vorherigen Frage im Zusammenhang;) erstellen Wörterbuch Eigenschaftsliste programmatisch

Aber da ich den plist schreiben kann (und testen, ob ich etwas falsch tue) Ich habe mich gefragt, ob ich meine schriftliche Datei kopieren

[testBook writeTofile:@/Users/jack/testbook2.plist" atomically:NO];

Zu meinem Anwendungspaket im Code (so dass es von hier lesen kann mit NSString *path = [[NSBundle mainBundle] bundlePath]; NSString *dataPath = [path stringbyAppendingPathcomponent:@"testbook2.plist"];

Eine weitere Alternative ist gut, wie auch zum Beispiel, wenn ich meinen plist von einem anderen Pfad direkt lesen kann anstelle des Main

War es hilfreich?

Lösung

Physikalisch ja, es ist möglich, manchmal.

nein, tu das nicht !!

Okay ... Kopieren Sachen in Ihre App Bundle ist schlecht, Ihr App-Paket ist nicht, wo Sie Einstellungen oder Daten halten. Sie sollten als Nur-Lese Ihres App Bundle denken. Sie sollten dies aus mehreren Gründen tun:

  1. Während die meiste Zeit ein Benutzer auf einem Mac OS X-System die Erlaubnis, eine App zu schreiben hat manchmal nicht sie tun. Denken Sie an die Kinder, die nicht Admin-Konten verwenden, oder Labor-Installationen in Schulen.
  2. Es wird Mitgestaltung ungültig machen. Wenn Sie die Anwendung signieren wird dies die Signatur ändern und das Co-Design brechen, was zu allen möglichen seltsamen Fragen (und verliert alle Firewall-Berechtigungen die App hat, den Benutzer erklären, die App geändert hat und sie für Schlüsselbund um Erlaubnis zu fragen wieder, etc). In Zukunft diese auch mit einer App seit Manipulation ist eine große Sicherheit rote Fahne.
  3. alle Arten von Warnungen Pop-up können
  4. Es wird nicht auf dem iPhone funktionieren. Das kann kein Problem sein, aber wenn Sie alle wollen diesen Code auf einem iPhone verwenden, um die Anwendungen Bündel Sandbox nur lesbar

Der richtige Ort, um diese Art von Sachen der Application Support Ordner in einen Unterordner setzen

Andere Tipps

Ich weiß nicht genau, was Sie tun, aber je nach Anwendung, möchten Sie vielleicht das Application Support-Verzeichnis verwenden:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
if ([paths count] > 0) {
    NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"App Name"];
    // Create the directory if it doesn't exist, etc.
} else {
    NSLog(@"Fail!");
    // ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top