偏好設(shè)置
成都創(chuàng)新互聯(lián)是一家專業(yè)提供清鎮(zhèn)企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站設(shè)計、HTML5、小程序制作等業(yè)務(wù)。10年已為清鎮(zhèn)眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。iOS應(yīng)用支持偏好設(shè)置,要來保存數(shù)據(jù),比如保存用戶名、密碼、字體大小等設(shè)置,iOS提供了一套標(biāo)準(zhǔn)的解決方案來為應(yīng)用加入偏好設(shè)置。
每個應(yīng)用都有一個NSUserDefaults實例,通過它來存取偏好設(shè)置。
+ (NSUserDefaults *)standardUserDefaults //單例對象
存儲偏好設(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"]; //存儲后立刻同步 [defaults synchronize];
讀取偏好設(shè)置也有對應(yīng)的方法,如:
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; NSString * account = [defaults objectForKey:@"account"]; BOOL autoLogin = [defaults boolForKey:@"autoLogin"];
應(yīng)用案例:新特性頁面的顯示
很多App下載或更新后第一次打開會顯示一個新特性頁面(往往是多張圖片展示新特性),再次打開不會再顯示。
實現(xiàn)方式:
將每一次App運行時的版本號存儲在偏好設(shè)置中
App啟動時,檢測存儲在偏好設(shè)置中的版本號與當(dāng)前的版本號是否一致
如:
//AppDelegate的didFinishLaunching...方法中 //通過UserDefault獲得上一次app運行時的版本 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]; //如果這個版本時第一次進(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主頁時 //獲取當(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];
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。