当前位置:首页 » 存储配置 » plist存储

plist存储

发布时间: 2023-03-26 04:14:52

1. iOS 中 plist 文件的使用

解释一下,plist 文件就是 Property List 文件,我们在 Xcode 中新建一个 Project 的时候,在 Project 中可以看到有一个 Info.plist 文件,这种以 .plist 后缀结尾的文件是以 key-value 键值对的形式保存数据的。在开发中,我们可以使用这野孝冲些 plist 文件保存一些系统配置、用户信息等的信息,炒鸡方便。

这样吧,我搞一个 plist 文件,里面放有一些城市列表数据,然后把它读取出来。

新建一个 Property List 文件(以下简颂歼称 plist 文件),姑且起个名字 Cities.plist

打开 Cities.plist 文件,发现它可以存储 Array(数组)和 Dictionary(字典)数据

由于城市列表就是个数组,所以我们在 Root 这个 key 中的 Type 选择 Array,并往里面添加点城市数据

添加完模拟数据,才发现添加的不是城市数据...算了,当作城市吧
其实 plist 文件本质就是一个 xml 文件

控制台打印:

这样拿到数据就可以对它进行一些处理了。
好吧,我慎裤只是经常要用到记录一下而已🌚

2. IOS 存储方式(PList、NSUserDefaults、归档、CoreData、数据库、文件)

iOS开发,plist文件读写那些事 - (jianshu.com)

NSUserDefaults存储轻量级 的本地数据 ,比如要保存一个登陆界面的数据,用户名、密码之类的。

支持的数据类型有 NSString、 NSNumber、NSInteger、NSFloat、BOOL、NSArray、NSDictionary、NSDate、 等系统定义的数据类型。

用NSUserDefaults存储的数据下次程序运行的时候依然存在 .它的数据存储在应用程序内置的一个plist文件里, 在/Library/Prefereces沙盒路径下.

NSUserDefaults是定时把缓存中的数据写入磁盘的,而不是即时写入,为了防止在写完NSUserDefaults后程序退出导致的数据丢失,可以在写入数据后使用synchronize强制立即将数据写入磁盘:

使用NSKeyedArchiver 对数据进行 归档 反归档(将自定义类型转换为NSData类型:)

NSuserDefaults 的坑
iOS 最终,我还是决定放弃使用NSUserDefaults了 - (jianshu.io)

归档: ,就是将数据写到一个文件里面去。一般我们的应用的变量常量之类的数据都是在内存里面的,只要APP关闭,这些数据都会丢失。但是把数据存储到文件里面去,就能将数据保存到本地磁盘里面(目前iOS基本就是在沙盒里面操作了),不管是APP关闭还是重启设备,下次启动APP的时候都能够读出来。

解档: (别人也叫反归档),就是将数据从文件里面读取出来。在程序里面使用。

【iOS】数据持久化:使用NSKeyedArchiver进行数据归档 - (jianshu.com)

iOS 开发Core Data使用方法 – 技术狗 (jishudog.com)

IOS 开发文件操作——NSFileManager - 星语海蓝 - 博客园 (cnblogs.com)
(15条消息) iOS文件操作_你有故事,我囿酒-CSDN博客

参考:
iOS开发 - 关于 NSUserDefaults 的使用 - (jianshu.com)

3. iOS中常用的几种持久化存储

1、偏好设置(NSUserDefaults)
2、plist文件存储
3、归档
4、SQLite
5、Core Data

我们首先需要了解下沙盒(Sandbox)

Application :存放程序源文件,上架前经过数字签名,上架后不可修改
Documents : 保存应⽤运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录
tmp : 保存应⽤运行时所需的临时数据,使⽤完毕后再将相应的文件从该目录删除。应用 没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录。
Library/Caches : 保存应用运行时⽣成的需要持久化的数据,iTunes同步设备时不会备份 该目录。⼀一般存储体积大、不需要备份的非重要数据,比如网络数据缓存存储到Caches下
Library/Preference : 保存应用的所有偏好设置,如iOS的Settings(设置) 应⽤会在该目录中查找应⽤的设置信息。iTunes同步设备时会备份该目录

NSUserDefaults是个单例类,用于存储少量数据。NSUserDefaults实际上对plist文件操作的封装,更方便我们直接操作,一般用于存储系统级别的偏好设置。比如我们经常将登录后的用户的一些设置通过NSUserDefaults存储到plist文件中。

NSUserDefaults使用起来非常简单,例如将用户的账号和密码存储起来:

4. OC -- 应用数据储存方式

      之前对数据之久化一直都是一知半解,只知道有几种方法,但不清楚这几种方法的区别.经过网上的查询和学习.写一下自己的心得体会.

       数据持久化说白了就是将数据保存到本地的磁盘中.使得在应用程序重启后可以继续访问之前保存的数据.在ios中运用了很多的存储方式,一般我们用的方式分为以下5中:

沙盒是苹果的发明的内存管理机制,ios 程序默认情况下只能访问程序自身的目录,且这个目录被称为"沙盒"

应用程序包: 包含了所有的资源文件和可执行的文件.

Documents :保存应用运行时生成的需要数据持久化的数据,iTunes同步设备时会备份目录.例如游戏存档

tmp: 保存应用运行时所需的临时数据,使用完后就会将相应的文件从该目录删除,应用没有运行时,系统可能也会清除该文件下的数据.iTunes同步设备时,不会备份该目录.

Library / Caches : 保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录.-----一般存储体积大.不需要备份的非重要数据.

Library / Preference :保存应用的所有偏好设置,iOS的settings(设置)应用会在改目录中查找应用的设置信息.iTunes同步设备时会备份该目录.

虽然沙盒中有这么多文件夹,但是每个文件夹功能都是不相同的在上面我们也描述了,每次文件夹的功能.所以以后在存储数据的时候要注意存储的文件.一定要选择合适的文件夹.

获取相应文件夹位置的方法.

获取沙盒根目录

应用程序包:

Documents:(有两种获取方式)

TMP 

Library/Caches:

Library/Preference

Plist文件

plist文件是将某些特定的类,通过XML的文件方式保存在目录中,并且plist 文件是存储在Documents文件夹下面的.

可以被序列化的类型只有如下几种:

1获取文件路径

2.存储

3.读取

4.注意

只有以上列出的类型才能使用plist文件存储。

存储时使用writeToFile: atomically:方法。 其中atomically表示是否需要先写入一个辅助文件,再把辅助文件拷贝到目标文件地址。这是更安全的写入文件方法,一般都写YES。

读取时使用arrayWithContentsOfFile:方法。

热点内容
手机f加密 发布:2024-05-19 03:28:47 浏览:225
用什么密码写日记 发布:2024-05-19 03:27:57 浏览:303
数据库access2003 发布:2024-05-19 02:49:39 浏览:620
碧蓝航线pc挂机脚本 发布:2024-05-19 02:30:03 浏览:589
脚本fir 发布:2024-05-19 02:28:57 浏览:261
阿里云独享服务器 发布:2024-05-19 02:23:54 浏览:253
织梦源码ga 发布:2024-05-19 02:23:20 浏览:571
java文件名后缀 发布:2024-05-19 02:14:39 浏览:956
快手点榜脚本 发布:2024-05-19 02:08:44 浏览:163
pythonforinkeys 发布:2024-05-19 01:55:44 浏览:793