- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//打印當前應用程序的沙盒路徑
NSLog(@"%@", NSHomeDirectory());
//沙盒:在一定範圍內可以隨意做任何事
//iOS程序的沙盒指的就是應用程序的文件操作文件夾, 在文件夾內可以讀寫任何內容, 但是完全不能訪問其他應用程序的沙盒文件夾
//Documents:跟用戶相關的一些文件, 用戶設置的對這個app的偏好設置. 用戶的一些文本信息. 最好不要存儲空間佔用比較大的文件比如視頻/音頻等等
//Library:給開發者使用的, 用來存儲一些東西的文件夾
//Caches:緩存文件夾, 用戶看過的一些圖片, 音頻, 視頻, 都可以存儲在這個文件夾中.一般的app, 清除緩存意思就是清除這個文件夾的所有內容
//Preferences: 給開發者存儲一些內容, NSUserDefaults保存的信息都在這個文件夾中
// [[NSUserDefaults standardUserDefaults] setObject:@"" forKey:<#(NSString *)#>]
//tmp:臨時文件夾, 存儲網絡請求過程中的一些臨時文件. app版本更新的時候, 會直接清空tmp文件夾.
//簡單對象寫入本地
//NSString, NSNumber, NSDictionary, NSArray, NSData;
//1.拼接一個存儲路徑
//系統提供了一個函數, 可以直接返回某一個沙盒文件夾的路徑
//返回值: 找到的路徑組成的數組, 如果搜索的是系統的沙盒文件夾路徑, 數組中只有一個元素.
//參數1:搜索沙盒中的哪個文件夾
//參數2:搜索的範圍
//參數3:返回的是相對路徑還是絕對路徑
NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSLog(@"%@", arr);
//獲取文件路徑
//取出documents文件夾的路徑
NSString *docPath = [arr lastObject];
//拼接一個文件的路徑
NSString *txtPath = [docPath stringByAppendingString:@"/123.txt"];
//2.按照路徑寫入
NSString *str = @"aa";
//參數1:要寫入的路徑
//參數2:是否對寫入的文件進行寫保護
//參數3:編碼格式
//參數4:錯誤信息
NSError *error = nil;
[str writeToFile:txtPath atomically:YES encoding:NSUTF8StringEncoding error:&error];
//數組寫入本地
NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
NSString *arrPath = [docPath stringByAppendingPathComponent:@"suibian.plist "];
//寫入本地
[array writeToFile:arrPath atomically:YES];
//創建boss對象
Boss *boss = [[Boss alloc] init];
boss.name = @"ww";
boss.number = @"20";
boss.sex = @"man";
// 將複雜對象寫入本地的工具
//參數1:要寫入本地的對象
//參數2:要寫入的路徑
NSString *bossPath = [docPath stringByAppendingPathComponent:@"boss.aa"];
//歸檔類
BOOL result = [NSKeyedArchiver archiveRootObject:boss toFile:bossPath];
NSLog(@"複雜對象寫入本地:%d", result);
[boss release];
//反歸檔類
//從本地讀取數據產生一個新的複雜對象
Boss *bossReturn = [NSKeyedUnarchiver unarchiveObjectWithFile:bossPath];
NSLog(@"%@", bossReturn.name);
}