使用NSKeyedArchiver做本地存储,模拟器上成功,真机写入失败?
NSString *homeDictionary = NSHomeDirectory();
_filePath = [homeDictionary stringByAppendingPathComponent:@"history.archiver"];
BOOL flag = [NSKeyedArchiver archiveRootObject:mutArr toFile:self.filePath];
在模拟器上没有问题,然而在真机上运行的时候写入会失败?
原因是真机下这样构建目录下的文件没有写入数据的权限,所以导致失败,解决办法之一就是修改权限,让其可写。
但是通常我们通过下面这种方式去处理,换一种获取目录的方式,然后构建一个自己的文件。
NSString *path = [NSSearchPathForDirectoriesInDomains(9, 1, 1) firstObject];
_filePath = [path stringByAppendingPathComponent:@"history.archiver"];
观察可以发现,两种方式构建的目录还是有差别的 ../history.archiver ../Documents/history.archiver