[关闭]
@SanMao 2015-12-19T22:47:13.000000Z 字数 2297 阅读 1277

文件存储

文件存储


沙盒(Documents,tmp,Library)

沙盒根目录

  1. NSString *home = NSHomeDirectory();
  1. - (IBAction)save:(id)sender {
  2. // 确定数据将要存储的位置为cache文件夹
  3. // 获取cache文件夹的路径
  4. NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
  5. // 拼接文件存储的全路径
  6. NSString *filePath = [cachePath stringByAppendingPathComponent:@"arr.plist"];
  7. // 存储文件
  8. // plist文件不能存储自定义对象
  9. [_arr writeToFile:filePath atomically:YES];
  10. }
  11. - (IBAction)read:(id)sender {
  12. // 获取cache文件夹的路径
  13. NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
  14. // NSLog(@"%@",cachePath);
  15. // 拼接文件存储的全路径
  16. NSString *filePath = [cachePath stringByAppendingPathComponent:@"arr.plist"];
  17. // 读取文件首先要确定文件的类型(此处为数组)
  18. NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];
  19. NSLog(@"%@",arr);
  20. }
  1. - (IBAction)preferenceSave:(id)sender {
  2. // 快速存储键值对,不需要路径,系统会自动处理
  3. [[NSUserDefaults standardUserDefaults] setObject:@"张三" forKey:@"name"];
  4. [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"autoLogin"];
  5. }
  6. - (IBAction)preferenceRead:(id)sender {
  7. // 存的是什么类型,读取的就是什么类型
  8. NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:@"name"];
  9. // BOOL b = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoLogin"];
  10. NSLog(@"%@",str);
  11. }
  1. - (IBAction)saveDoc:(id)sender {
  2. // 自定义对象要保存到沙盒,必须通过归档
  3. Person *p = [[Person alloc] init];
  4. p.name = @"李四";
  5. p.age = 18;
  6. // 获取document文件夹路径
  7. NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
  8. // 拼接全路径
  9. NSString *filePath = [documentPath stringByAppendingPathComponent:@"suibian.data"];
  10. // 归档的对象必须要遵守NSCoding协议,并实现encodeWithCoder: 方法(方法中主要是明确对象的哪些属性需要归档)
  11. [NSKeyedArchiver archiveRootObject:p toFile:filePath];
  12. }
  13. - (IBAction)readDoc:(id)sender {
  14. // 创建对象
  15. Person *p = [[Person alloc] init];
  16. // 加载document路径
  17. NSString *document = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
  18. // 拼接全路径
  19. NSString *filePath = [document stringByAppendingPathComponent:@"suibian.data"];
  20. // 解档
  21. p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
  22. NSLog(@"%@",p.name);
  23. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注