偏好設(shè)置
石泉網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
iOS應(yīng)用支持偏好設(shè)置,要來保存數(shù)據(jù),比如保存用戶名、密碼、字體大小等設(shè)置,iOS提供了一套標(biāo)準(zhǔn)的解決方案來為應(yīng)用加入偏好設(shè)置。
每個(gè)應(yīng)用都有一個(gè)NSUserDefaults實(shí)例,通過它來存取偏好設(shè)置。
+ (NSUserDefaults *)standardUserDefaults //單例對(duì)象
存儲(chǔ)偏好設(shè)置使用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"]; //存儲(chǔ)后立刻同步 [defaults synchronize];
讀取偏好設(shè)置也有對(duì)應(yīng)的方法,如:
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; NSString * account = [defaults objectForKey:@"account"]; BOOL autoLogin = [defaults boolForKey:@"autoLogin"];
應(yīng)用案例:新特性頁面的顯示
很多App下載或更新后第一次打開會(huì)顯示一個(gè)新特性頁面(往往是多張圖片展示新特性),再次打開不會(huì)再顯示。
實(shí)現(xiàn)方式:
將每一次App運(yùn)行時(shí)的版本號(hào)存儲(chǔ)在偏好設(shè)置中
App啟動(dòng)時(shí),檢測(cè)存儲(chǔ)在偏好設(shè)置中的版本號(hào)與當(dāng)前的版本號(hào)是否一致
如:
//AppDelegate的didFinishLaunching...方法中 //通過UserDefault獲得上一次app運(yùn)行時(shí)的版本 NSString * lastVersion = [[NSUserDefaults standardUserDefaults] objectForKey:UserDefaultBundleVerson]; //獲取當(dāng)前Bundle Version NSURL * infoPlistURL = [[NSBundle mainBundle] URLForResource:@"Info.plist" withExtension:nil]; NSDictionary * dict = [NSDictionary dictionaryWithContentsOfURL:infoPlistURL]; NSString * currentVersion = dict[(NSString*)kCFBundleVersionKey]; //如果這個(gè)版本時(shí)第一次進(jìn)入,則顯示新特性頁面 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; }
//新特性跳轉(zhuǎn)到App主頁時(shí) //獲取當(dāng)前Bundle Version NSURL * infoPlistURL = [[NSBundle mainBundle] URLForResource:@"Info.plist" withExtension:nil]; NSDictionary * dict = [NSDictionary dictionaryWithContentsOfURL:infoPlistURL]; NSString * currentVersion = dict[(NSString*)kCFBundleVersionKey]; //將當(dāng)前版本保存到UserDefault中 [[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:UserDefaultBundleVerson];