In meiner Header-Datei, könnte ich folgendes hinzufügen:
@interface myAppDelegate : NSObject <UIApplicationDelegate> {
...
NSString *databaseName;
}
extern NSString * const kDefaultDatabaseName;
extern NSString * const kAppDatabaseNameKey;
In meiner Implementierung-Datei, würde ich folgendes hinzufügen:
NSString * const kDefaultDatabaseName = @"myDefaultDatabaseName";
NSString * const kAppDatabaseNameKey = @"kAppDatabaseNameKey";
@implementation myAppDelegate
+ (void) initialize {
if ([self class] == [MyAppDelegate class]) {
UIApplication* myApp = [UIApplication sharedApplication];
NSString *defaultDatabaseName = kDefaultDatabaseName;
NSMutableDictionary *resourceDict = [NSMutableDictionary dictionary];
[resourceDict setObject:defaultDatabaseName forKey:kAppDatabaseNameKey];
}
}
- (void) applicationDidFinishLaunching:(UIApplication *)application {
...
databaseName = [[NSUserDefaults standardUserDefaults] stringForKey: kAppDatabaseNameKey];
}
...
- (void) applicationWillTerminate:(UIApplication *)application {
...
[[NSUserDefaults standardUserDefaults] setObject:databaseName forKey:kAppDatabaseNameKey]
}
Wenn die Anwendung gestartet wird, wenn es keine pre -existing user defaults, +initialize
erstellt ein neues NSUserDefaults
Wörterbuch mit allem, was Sie als Ihre Standarddatenbank in kDefaultDatabaseName
festgelegt werden.
Nach dem Start der Anwendung übernimmt das Element databaseName
den Wert, der im NSUserDefaults
Wörterbuch festgelegt ist. Dies kann die kDefaultDatabaseName
oder was auch immer es nach dem Ausführen Ihrer Anwendung aktualisiert wurde sein.
Während Sie Ihre Anwendung ausführen, kann Ihr Benutzer den Wert databaseName
auf etwas anderes ändern.
Kurz bevor die Anwendung beendet wird, wird der Wert databaseName
in das Verzeichnis NSUserDefaults
geschrieben. Beim nächsten Öffnen der Anwendung übernimmt databaseName
den neuen, aktualisierten Wert.
Sie müssen nicht warten, bis die Anwendung beendet wird, bevor Sie dieses Update in das Wörterbuch schreiben. Sie könnten dies zum Beispiel sofort machen, nachdem der Benutzer databaseName
zu etwas Neuem ändert. Aber das liegt an dir.