Ily*_*ski 9 iphone cocoa-touch objective-c
在长期记忆中保存iPhone应用程序中的几个变量的最简单方法是什么?
我有一个适用于不同sqlite数据库的应用程序,我希望在退出应用程序后保存最后一个活动数据库名称,以便在用户再次进入应用程序时打开最后一个数据库.
为此目的创建一个特殊的数据库并将这些值存储在其中有点不方便,因为我只有几个变量要存储.
存储这些变量的最简单方法是什么?
先感谢您.
在我的头文件中,我可能会添加以下内容:
@interface myAppDelegate : NSObject <UIApplicationDelegate> {
...
NSString *databaseName;
}
extern NSString * const kDefaultDatabaseName;
extern NSString * const kAppDatabaseNameKey;
Run Code Online (Sandbox Code Playgroud)
在我的实现文件中,我将添加以下内容:
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]
}
Run Code Online (Sandbox Code Playgroud)
当您的应用程序启动时,如果没有预先存在的用户默认值,则使用您设置为默认数据库的任何内容+initialize创建一个新的NSUserDefaults字典kDefaultDatabaseName.
当应用程序完成启动时,该成员databaseName将获取NSUserDefaults字典中设置的值.这可以是kDefaultDatabaseName运行应用程序后更新的内容.
在运行应用程序时,您的用户可能会将值更改databaseName为其他内容.
在应用程序终止之前,将值databaseName写入NSUserDefaults字典.下次打开应用程序时,databaseName将采用新的更新值.
在将此更新写入字典之前,您不必等待应用程序终止.例如,您可以在用户更改databaseName新内容后立即执行此操作.但这取决于你.
| 归档时间: |
|
| 查看次数: |
6491 次 |
| 最近记录: |