關(guān)于NSUserDefaults

存儲BOOL

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"loginStatus"];

取值

BOOL isLogin = [[NSUserDefaults standardUserDefaults] boolForKey:@"loginStatus"];
if (isLogin) {
    NSLog(@"yes");
}else{
    NSLog(@"no");
}

感謝https://segmentfault.com/q/1010000002633675

判斷是否是第一次啟動

方法一、在didFinishLaunchingWithOptions方法中加入如下代碼:

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]){  
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];  
//第一次啟動  
}else{  
//不是第一次啟動了  
}  

方法二、判斷app是否第一次啟動或者更新后第一次啟動

#define LAST_RUN_VERSION_KEY @"last_run_version_of_application"  
- (BOOL) isFirstLoad{  
NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary]  objectForKey:@"CFBundleShortVersionString"];   

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  

NSString *lastRunVersion = [defaults objectForKey:LAST_RUN_VERSION_KEY];  

if (!lastRunVersion) {  
    [defaults setObject:currentVersion forKey:LAST_RUN_VERSION_KEY];  
    return YES;  
}  
else if (![lastRunVersion isEqualToString:currentVersion]) {  
    [defaults setObject:currentVersion forKey:LAST_RUN_VERSION_KEY];  
    return YES;  
}  
    return NO;  
}  

第二種方法試了是否是第一次安裝, 是可行的, 其他有時間再說
感謝http://blog.csdn.net/loving_ios/article/details/50435840

即時寫入

通過官方文檔可以了解到,UserDefaults是根據(jù)時間戳定時的把緩存中的數(shù)據(jù)寫入本地磁盤,而非即時寫入。所以調(diào)用set方法之后數(shù)據(jù)有可能還沒有寫入磁盤,應(yīng)用程序就已經(jīng)終止了。保險期間,我們在對重要的數(shù)據(jù)保存時使用synchornize方法強制寫入。但是也要注意,不用頻繁的使用synchornize
看NSUserDefaults的頭文件,就會發(fā)現(xiàn),其實還有另外一個方法:synchronize,數(shù)據(jù)即時寫入

//存入數(shù)據(jù)
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
[defaults setObject:@"111" forKey:@"test"];

//把數(shù)據(jù)寫到硬盤上
[defaults synchronize];

感謝http://www.mamicode.com/info-detail-137868.html, 里面還有很多知識點

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容