判斷是否是第一次啟動,是否加載啟動頁
在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:”
通過NSUserDefaults 來進行判斷
if (![[NSUserDefaultsstandardUserDefaults] boolForKey:@"everLaunched"])
{
[[NSUserDefaultsstandardUserDefaults]setBool:YESforKey:@"everLaunched"];
[[NSUserDefaultsstandardUserDefaults]setBool:YESforKey:@"firstLaunch"];
NSLog(@"first launch");
}else {
[[NSUserDefaultsstandardUserDefaults]setBool:NOforKey:@"firstLaunch"];
NSLog(@"second launch");
}
2、在RootViewController的 viewWillAppear:的方法里面進行添加
if ([[NSUserDefaultsstandardUserDefaults] boolForKey:@"firstLaunch"]) {
[[NSUserDefaultsstandardUserDefaults]setBool:NOforKey:@"firstLaunch"];
UserGuideController *userGuide = [[[UserGuideControlleralloc] init] autorelease];
[self present ModalViewController:userGuide animated:YES];
}
3、在設置頁面里面也可以添加同樣的視圖,讓用戶可以查看。
4,在沙盒地下設置一個文件,第一次運行的時候就創建這個文件,即運行這個新手指南類似的文件,以后判斷是否
存在這個文件,如果存在則不再創建(即不執行新手指南的展示方法)。
或者在數據庫里做一個標記,標記此文件是否被創建過。
自己實踐:
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]){
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstStart"];
NSLog(@"第一次啟動");
self.window.rootViewController = [[WuNewFeature alloc]init];
}else{
NSLog(@"不是第一次啟動");
self.window.rootViewController = [[WuNewFeature alloc]init];
MainVC *mainVC = [[MainVC alloc]init];
self.window.rootViewController = [[BaseNavigationController alloc]initWithRootViewController:mainVC];
}
ios 常見的四種存儲方式
1.CoreData對象存儲
2.NSUserDefaults存儲配置信息
3.文件沙盒存儲
4.數據庫存儲
1、歸檔和解檔
常用方法
-(void)NSKeyedArchiver
{
NSString *str = @"abc";
NSString *str1 = @"efg";
NSArray *Array = [NSArray arrayWithObjects:str,str1, nil];
//保存數據
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSString *fileName = [path stringByAppendingPathComponent:@"text"];
[NSKeyedArchiver archiveRootObject:Array toFile:fileName];
NSLog(@"%@=======",path);
NSLog(@"%@",fileName);
//再次賦值,觀察數據變化
str = @"a";
str1 = @"";
//加載數據
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile:fileName];
str = [arr objectAtIndex:0];
str1 = [arr objectAtIndex:1];
NSLog(@"%@",str);
NSLog(@"%@",str1);
}
打印出來的數據應該是第一次輸入的內容。因為在解檔后,字符串是從文件中讀出的
屬性解析:
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSDocumentDirectory 打開的目錄是文檔目錄
NSDocumentationDirectory: 打開的是/Library/Documentation/的目錄。
NSDownloadsDirectory 打開的下載目錄。
因為應用是在沙箱(sandbox)中的,在文件讀寫權限上受到限制,只能在幾個目錄下讀寫文件:
Documents:應用中用戶數據可以放在這里,iTunes備份和恢復的時候會包括此目錄
tmp:存放臨時文件,iTunes不會備份和恢復此目錄,此目錄下文件可能會在應用退出后刪除
Library/Caches:存放緩存文件,iTunes不會備份此目錄,此目錄下文件不會在應用退出刪除
詳細內容:
http://blog.csdn.net/luohai859/article/details/42458307