使用偏好设置存储数据
偏好设置
iOS应用支持偏好设置,要来保存数据,比如保存用户名、密码、字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置。
每个应用都有一个NSUserDefaults实例,通过它来存取偏好设置。
+(NSUserDefaults*)standardUserDefaults//单例对象
存储偏好设置使用set开头的方法,如:
NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults];[defaultssetObject:@"aaa"forKey:@"account"];[defaultssetObject:@"123"forKey:@"password"];[defaultssetInteger:10forKey:@"age"];[defaultssetBool:YESforKey:@"autoLogin"];//存储后立刻同步[defaultssynchronize];
读取偏好设置也有对应的方法,如:
NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults];NSString*account=[defaultsobjectForKey:@"account"];BOOLautoLogin=[defaultsboolForKey:@"autoLogin"];
应用案例:新特性页面的显示
很多App下载或更新后第一次打开会显示一个新特性页面(往往是多张图片展示新特性),再次打开不会再显示。
实现方式:
将每一次App运行时的版本号存储在偏好设置中
App启动时,检测存储在偏好设置中的版本号与当前的版本号是否一致
如:
//AppDelegate的didFinishLaunching...方法中//通过UserDefault获得上一次app运行时的版本NSString*lastVersion=[[NSUserDefaultsstandardUserDefaults]objectForKey:UserDefaultBundleVerson];//获取当前BundleVersionNSURL*infoPlistURL=[[NSBundlemainBundle]URLForResource:@"Info.plist"withExtension:nil];NSDictionary*dict=[NSDictionarydictionaryWithContentsOfURL:infoPlistURL];NSString*currentVersion=dict[(NSString*)kCFBundleVersionKey];//如果这个版本时第一次进入,则显示新特性页面if(![currentVersionisEqualToString:lastVersion]){UIViewController*vc=[[UIStoryboardstoryboardWithName:@"MainPage"bundle:nil]instantiateViewControllerWithIdentifier:@"newFeature"];self.window.rootViewController=vc;}else{UIViewController*vc=[[UIStoryboardstoryboardWithName:@"MainPage"bundle:nil]instantiateViewControllerWithIdentifier:@"mainPage"];self.window.rootViewController=vc;}
//新特性跳转到App主页时//获取当前BundleVersionNSURL*infoPlistURL=[[NSBundlemainBundle]URLForResource:@"Info.plist"withExtension:nil];NSDictionary*dict=[NSDictionarydictionaryWithContentsOfURL:infoPlistURL];NSString*currentVersion=dict[(NSString*)kCFBundleVersionKey];//将当前版本保存到UserDefault中[[NSUserDefaultsstandardUserDefaults]setObject:currentVersionforKey:UserDefaultBundleVerson];
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。