假如你需要把一个字典或者别的什么东西保存到沙盒里,你准备怎么做?也许你已经条件反射的想到了操作步骤……其实,你可以不必每次都那么老老实实的把每一步写出来,一行代码就可以了:【路径+保存文件】两个关键点,组成一条链式语法。
@"文件名".cachePath.save(要保存的内容);
如果你的项目里还没有AXKit,可以在pod文件里添加一条 pod 'AXKit'
进行接入,也可移步至 AXKit在线文档 查看详细的安装和使用方法。
我封装了几个常用的沙盒路径,如下:
- (nullable NSString *)mainBundlePath; // mainBundlePath就是主工程项目里的文件路径
- (NSString *)docPath; // 文档,iTunes会备份,适合保存重要的数据
- (NSString *)cachePath; // 缓存,iTunes不会备份,适合保存不太重要的较大的数据
- (NSString *)tempPath; // 临时文件,iTunes不会备份,系统空闲时会自动删除,设备重启时也会删除
除此之外,还提供了所有的路径,通过枚举的方式获取:
- (NSString *(^)(NSSearchPathDirectory))path; // 传入NSSearchPathDirectory枚举就可得到路径
在沙盒的文档路径里有个叫 abc.plist
的文件,它的描述就是:
@"abc.plist".docPath;
任何一个字符串都可以使用 .append()
进行拼接。
保存的方法目前提供有四个:
- (BOOL(^)(id))savePlist;
- (BOOL(^)(NSObject<NSCoding> *))saveArchivedPlist;
- (BOOL(^)(NSObject<NSCoding> *))saveArchivedObject;
- (BOOL(^)(id <NSCoding>))save;
在doc路径下保存一个名为”arr.plist”的文件:
在cache路径下归档一个名为”myfile.plist”的文件:
读取的方法目前提供了七个:
- (nullable __kindof NSArray *)readArray;
- (nullable __kindof NSDictionary *)readDictionary;
- (nullable id)readArchivedPlist;
- (nullable id)readJson;
- (nullable NSString *)readTxt;
- (nullable id)readArchivedFile;
- (nullable id)readArchivedObject;
在doc路径下读取一个名为”arr.plist”的文件:
在cache路径下解档一个名为”myfile.plist”的文件:
遍历路径下所有文件
// 获取doc/myDir 路径下所有的扩展名为"plist"文件路径
NSArray *paths = @"myDir".docPath.subpaths(@"plist");
// 如果传入值为空,则不区分扩展名获取所有文件路径
NSArray *paths2 = @"myDir".docPath.subpaths(@"");
// paths里面装的是doc/myDir路径下的所有文件完整路径
结构:【路径+删除】
- (BOOL)removePlist;
- (BOOL)removeJson;
- (BOOL)removeTxt;
- (BOOL)remove;
在doc路径下删除一个名为”arr.plist”的文件:
在cache路径下删除一个名为”myfile.plist”的文件: