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

IOS 存储方式(PList、NSUserDefaults、归档、CoreData、数据库、文件),第1张

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)

当我们开发程序时,经常需要缓存网络图片或从磁盘读取时,多数时候我们选择SDWebImage,不得不说这个框架很优秀,许多的问题都不要我们去考虑。然而有些场景是需要自定义,NSMutableDictionary是多数人的选择。然而NSCache类更好,它是Foundation框架专为处理这种任务设计的。

NSCache的优点:

1.当系统资源将要耗尽时,它可以自动增减缓存。

2.NSCache会优先删除"最久未使用的"。

3.NSCache是线程安全的。

4.NSCache可以设置缓存的总个数和总的大小值。

总结:

1.线程安全是非常有必要的,功能复杂后出现这种偶现问题很难排查。

2.NSCache有一套专用的缓存机制,为开发者提供了便捷,如果自己实现将会很复杂。当NSCache不能满足开发者的需求时,可考虑选择自定义缓存。

3.当有这种缓存场景的时候,我们优先考虑NSCache。

4.SDWebImage内存级别缓存图片用的是NSCache,可查看SDImageCache的memCache。

ios前端有缓存的解决方法:

1.此时在ios app的沙盒文件中将保存好已经缓存的文件,如果此时没有退出APP,那么缓存的内容同时也会保存在内存中;如下图(此处针对的UIWebView)

2.此时可以看到这Caches文件中,后面的Paul.H5下面多了Cache.db的数据库,打开数据库可以看到以下内容;注意 此时的图片资源也是保存在Paul.H5下面的文件中


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10054042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存