前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ObjC 使用链式语法更优雅地管理沙盒文件

ObjC 使用链式语法更优雅地管理沙盒文件

作者头像
零式的天空
发布2022-03-22 12:28:20
2260
发布2022-03-22 12:28:20
举报
文章被收录于专栏:零域Blog

假如你需要把一个字典或者别的什么东西保存到沙盒里,你准备怎么做?也许你已经条件反射的想到了操作步骤……其实,你可以不必每次都那么老老实实的把每一步写出来,一行代码就可以了:【路径+保存文件】两个关键点,组成一条链式语法。

代码语言:javascript
复制
@"文件名".cachePath.save(要保存的内容);

接入AXKit

如果你的项目里还没有AXKit,可以在pod文件里添加一条 pod 'AXKit' 进行接入,也可移步至 AXKit在线文档 查看详细的安装和使用方法。

路径

我封装了几个常用的沙盒路径,如下:

代码语言:javascript
复制
- (nullable NSString *)mainBundlePath; // mainBundlePath就是主工程项目里的文件路径
- (NSString *)docPath; // 文档,iTunes会备份,适合保存重要的数据
- (NSString *)cachePath; // 缓存,iTunes不会备份,适合保存不太重要的较大的数据
- (NSString *)tempPath; // 临时文件,iTunes不会备份,系统空闲时会自动删除,设备重启时也会删除

除此之外,还提供了所有的路径,通过枚举的方式获取:

代码语言:javascript
复制
- (NSString *(^)(NSSearchPathDirectory))path; // 传入NSSearchPathDirectory枚举就可得到路径

示例

在沙盒的文档路径里有个叫 abc.plist 的文件,它的描述就是:

代码语言:javascript
复制
@"abc.plist".docPath;

路径的拼接

任何一个字符串都可以使用 .append() 进行拼接。

保存

保存的方法目前提供有四个:

代码语言:javascript
复制
- (BOOL(^)(id))savePlist;
- (BOOL(^)(NSObject<NSCoding> *))saveArchivedPlist;
- (BOOL(^)(NSObject<NSCoding> *))saveArchivedObject;
- (BOOL(^)(id <NSCoding>))save;

示例

在doc路径下保存一个名为”arr.plist”的文件:

在cache路径下归档一个名为”myfile.plist”的文件:

读取

读取的方法目前提供了七个:

代码语言:javascript
复制
- (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”的文件:

查询

遍历路径下所有文件

代码语言:javascript
复制
// 获取doc/myDir 路径下所有的扩展名为"plist"文件路径
NSArray *paths = @"myDir".docPath.subpaths(@"plist");
// 如果传入值为空,则不区分扩展名获取所有文件路径
NSArray *paths2 = @"myDir".docPath.subpaths(@"");
// paths里面装的是doc/myDir路径下的所有文件完整路径

删除

结构:【路径+删除】

代码语言:javascript
复制
- (BOOL)removePlist;
- (BOOL)removeJson;
- (BOOL)removeTxt;
- (BOOL)remove;

示例

在doc路径下删除一个名为”arr.plist”的文件:

在cache路径下删除一个名为”myfile.plist”的文件:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接入AXKit
  • 路径
    • 示例
      • 路径的拼接
      • 保存
        • 示例
        • 读取
          • 示例
          • 查询
          • 删除
            • 示例
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档