深入讲解iOS开发中应用数据的存储方式

2020-01-14 18:20:31于海丽

// NSUserDomainMask 代表从用户文件夹下找
// YES 代表展开路径中的波浪字符“~”
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO); // 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素

 

NSString *documents = [array objectAtIndex:0];

tmp:NSString *tmp = NSTemporaryDirectory();


Library/Caches:(跟Documents类似的2种⽅方法)

 

利用沙盒根目录拼接”Caches”字符串

利⽤NSSearchPathForDirectoriesInDomains函数(将函数的第2个参数改 为:NSCachesDirectory即可)

Library/Preference:通过NSUserDefaults类存取该目录下的设置信息

相应的代码:

复制代码
#import "NJViewController.h"
#import "NJPerson.h"

 

@interface NJViewController ()
- (IBAction)saveDataBtnClick:(id)sender;
- (IBAction)readDataBtnClick:(id)sender;

@end


复制代码
@implementation NJViewController
/**
 *   点击保存按钮
 */
- (IBAction)saveDataBtnClick:(id)sender {
    
    // youtube做法
//    NSString *path = @"/Users/apple/Library/Application Support/iPhone Simulator/7.1/Applications/A6D53E11-DDF0-4392-B2D4-FE77A96888A6/Documents/abc.plist";
    
    // 获取应用程序根目录
    NSString *home = NSHomeDirectory();
    
    // 不建议写/
    //NSString *path = [home stringByAppendingString:@"/Documents"];
    // 不建议Documents写死
    //NSString *path = [home stringByAppendingPathComponent:@"Documents"];
    
    // NSUserDomainMask 在用户目录下查找
    // YES 代表用户目录的~
    // NSDocumentDirectory 查找Documents文件夹
    // 建议使用如下方法动态获取
    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    // 拼接文件路径