ObjC 使用链式语法更优雅地管理沙盒文件
假如你需要把一个字典或者别的什么东西保存到沙盒里,你准备怎么做?也许你已经条件反射的想到了操作步骤……其实,你可以不必每次都那么老老实实的把每一步写出来,一行代码就可以了:【路径+保存文件】两个关键点,组成一条链式语法。
1 | @"文件名".cachePath.save(要保存的内容); |
接入AXKit
如果你的项目里还没有AXKit,可以在pod文件里添加一条 pod 'AXKit'
进行接入,也可移步至 AXKit在线文档 查看详细的安装和使用方法。
路径
我封装了几个常用的沙盒路径,如下:
1 | - (nullable NSString *)mainBundlePath; // mainBundlePath就是主工程项目里的文件路径 |
除此之外,还提供了所有的路径,通过枚举的方式获取:
1 | - (NSString *(^)(NSSearchPathDirectory))path; // 传入NSSearchPathDirectory枚举就可得到路径 |
示例
在沙盒的文档路径里有个叫 abc.plist
的文件,它的描述就是:
1 | @"abc.plist".docPath; |
路径的拼接
任何一个字符串都可以使用 .append()
进行拼接。
保存
保存的方法目前提供有四个:
1 | - (BOOL(^)(id))savePlist; |
示例
在doc路径下保存一个名为”arr.plist”的文件:
1
2NSArray *arr = [NSArray array];
BOOL result = @"arr".docPath.savePlist(arr);在cache路径下归档一个名为”myfile.plist”的文件:
1
2
3MyProfiles *myfile = [[MyProfiles alloc] init];
// MyProfiles类需实现NSCoding协议
BOOL result = @"myfile".cachePath.saveArchivedPlist(myfile);
读取
读取的方法目前提供了七个:
1 | - (nullable __kindof NSArray *)readArray; |
示例
在doc路径下读取一个名为”arr.plist”的文件:
1
NSArray *arr = @"arr".docPath.readArray;
在cache路径下解档一个名为”myfile.plist”的文件:
1
MyProfiles *myfile = @"myfile".cachePath.readArchivedPlist;
查询
遍历路径下所有文件
1 | // 获取doc/myDir 路径下所有的扩展名为"plist"文件路径 |
删除
结构:【路径+删除】
1 | - (BOOL)removePlist; |
示例
在doc路径下删除一个名为”arr.plist”的文件:
1
BOOL result = @"arr.plist".docPath.remove;
在cache路径下删除一个名为”myfile.plist”的文件:
1
MyProfiles *myfile = @"myfile.plist".cachePath.remove;
详细文档
评论
TwikooValine