此处省略app.h/.m main.h
//
// MainViewController.m
// UI16_SandBox
//
// Created by NinGery on 15/5/20.
// Copyright (c) 2015年 mac. All rights reserved.
//
#import "MainViewController.h"
#import "Boss.h"
@interface MainViewController ()
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
NSLog(@"%@", NSHomeDirectory());
// 沙盒中的文件夹
// 1. Documents: 文档文件夹, 保存用户的数据. 最好不要保存体积很大的文件
// 2. Caches: 缓存文件夹, 应用程序的缓存内容(图片/数据/视频/音频...)
// 3. Preferences: 偏好设置文件夹, 给开发者保存数据用的
// 4. tmp: 临时文件夹,
// 把简单对象写入本地
// 1. 字符串写入本地
NSString *str = @"王磊吃醋了, 我把张家伟让给他得了, 打脸";
// 创建一个文件路径
// 获取Documents文件夹的路径
// 参数1: 要找哪个文件夹的路径
// 参数2: 寻找的范围
// 参数3: 是不是绝对路径
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
// 拼接一个文件名, 生成一个文件路径
NSString *strPath = [docPath stringByAppendingString:@"/aaaa.txt"];
// 参数1: 文件路径
// 参数2: 对写入过程进行线程保护
[str writeToFile:strPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
NSLog(@"文件路径: %@", strPath);
// 数组对象写入本地
NSArray *arr = @[@"张家伟", @"王维武"];
// 数组保存本地的文件扩展名是plist/xml
NSString *arrPath = [docPath stringByAppendingPathComponent:@"arr.plist"];
[arr writeToFile:arrPath atomically:YES];
// 字典对象写入本地
NSDictionary *dic = @{@"0":@"张家伟", @"1":@"王维武"};
NSString *dicPath = [docPath stringByAppendingPathComponent:@"dic.plist"];
[dic writeToFile:dicPath atomically:YES];
// 根据路径读取数据
NSArray *readArr = [NSArray arrayWithContentsOfFile:arrPath];
NSLog(@"%@", readArr);
// 复杂对象写入本地
// 自己创建的类产生的对象, 叫复杂对象
Boss *boss = [[Boss alloc] init];
boss.name = @"张家伟";
boss.gender = @"unknown";
boss.number = 2;
boss.phone = 120;
NSString *bossPath = [docPath stringByAppendingPathComponent:@"boss.suibian"];
// 归档类: 负责把一个对象, 写入本地/ 生成NSData
[NSKeyedArchiver archiveRootObject:boss toFile:bossPath];
// 反归档类: 负责读取本地的数据, 产生一个新的对象
Boss *newBoss = [NSKeyedUnarchiver unarchiveObjectWithFile:bossPath];
NSLog(@"%@", newBoss.gender);
}
@end