存儲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, 里面還有很多知識點