码迷,mamicode.com
首页 > 其他好文 > 详细

使用偏好设置存储数据

时间:2016-03-01 19:19:38      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:ios   数据存储   app   xcode   偏好设置   

  • 偏好设置

iOS应用支持偏好设置,要来保存数据,比如保存用户名、密码、字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置。

     每个应用都有一个NSUserDefaults实例,通过它来存取偏好设置。

+ (NSUserDefaults *)standardUserDefaults //单例对象

存储偏好设置使用set开头的方法,如:

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"aaa" forKey:@"account"];
[defaults setObject:@"123" forKey:@"password"];
[defaults setInteger:10 forKey:@"age"];
[defaults setBool:YES forKey:@"autoLogin"];
//存储后立刻同步
[defaults synchronize];

读取偏好设置也有对应的方法,如:

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSString * account = [defaults objectForKey:@"account"];
BOOL autoLogin  = [defaults boolForKey:@"autoLogin"];


  • 应用案例:新特性页面的显示

很多App下载或更新后第一次打开会显示一个新特性页面(往往是多张图片展示新特性),再次打开不会再显示。

实现方式:

    将每一次App运行时的版本号存储在偏好设置中

    App启动时,检测存储在偏好设置中的版本号与当前的版本号是否一致

如:

//AppDelegate的didFinishLaunching...方法中

//通过UserDefault获得上一次app运行时的版本
NSString * lastVersion = [[NSUserDefaults standardUserDefaults] objectForKey:UserDefaultBundleVerson];
//获取当前Bundle Version
NSURL * infoPlistURL = [[NSBundle mainBundle] URLForResource:@"Info.plist" withExtension:nil];
NSDictionary * dict = [NSDictionary dictionaryWithContentsOfURL:infoPlistURL];
NSString * currentVersion = dict[(NSString*)kCFBundleVersionKey];
//如果这个版本时第一次进入,则显示新特性页面
if ( ![currentVersion isEqualToString:lastVersion] ) {
    UIViewController * vc = [[UIStoryboard storyboardWithName:@"MainPage" bundle:nil] instantiateViewControllerWithIdentifier:@"newFeature"];
    self.window.rootViewController = vc;
}
else {
    UIViewController * vc = [[UIStoryboard storyboardWithName:@"MainPage" bundle:nil] instantiateViewControllerWithIdentifier:@"mainPage"];
    self.window.rootViewController = vc;
}
//新特性跳转到App主页时

//获取当前Bundle Version
NSURL * infoPlistURL = [[NSBundle mainBundle] URLForResource:@"Info.plist" withExtension:nil];
NSDictionary * dict = [NSDictionary dictionaryWithContentsOfURL:infoPlistURL];
NSString * currentVersion = dict[(NSString*)kCFBundleVersionKey];
//将当前版本保存到UserDefault中
[[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:UserDefaultBundleVerson];


本文出自 “teacherAn” 博客,请务必保留此出处http://annmeng.blog.51cto.com/3321237/1746337

使用偏好设置存储数据

标签:ios   数据存储   app   xcode   偏好设置   

原文地址:http://annmeng.blog.51cto.com/3321237/1746337

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!