这是我参与「第四届青训营 」笔记创作活动的的第14天,今天学习了iOS文件管理与序列化,对相关知识整理了笔记。
ios文件管理
沙盒机制
沙盒机制是iOS系统中的一种安全体系。每个iOS程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称之为沙盒。所有非代码文件都保存在此,如属性文件plist、文本文件、图像、图标、媒体资源等。
主要包含4个目录 MyApp.app、Documents、Library、tmp
NSFileManager(文件夹)
NSFileManager是用来管理文件系统的,它可以用来进行常见的文件\文件夹操作(拷贝、剪切、增删改查等),修改文件的内容和属性
NSBundle(安装包)
Apple 使用Bundle(捆绑包)来表示应用程序、框架、插件和许多其他特定类型的内容。 捆绑包将其包含的资源组织到定义明确的子目录中,捆绑包结构因平台和捆绑包类型而异。通过使用包对象,您可以在不知道包的结构的情况下访问包的资源。 捆绑对象提供了一个用于定位项目的单一界面,同时考虑了捆绑结构、用户偏好、可用的本地化和其他相关因素。 任何可执行文件都可以使用 bundle 对象来定位资源,无论是在应用程序的 bundle 中还是在位于其他位置的已知 bundle 中。您不使用捆绑对象来定位容器目录或文件系统的其他部分中的文件。
序列化/反序列化
序列化:将对象转换为字节序列的过程称为对象的序列化
反序列化:将字节序列恢复为对象的过程称为对象的反序列化
什么时候使用:要把内存中的对象状态保存到一个文件中或者数据库中的时候、要用套接字在网络上传送对象的时候。
主流序列化协议:xml、json、protobuf
开源JSON序列化组件:YYModel、JSONModel、mantle
总结
今日学习了iOS文件管理与序列化的基础知识,对ios app的文件相关又了更多的了解。