iOS应用数据持久化方案与沙盒机制详解.pdfVIP

iOS应用数据持久化方案与沙盒机制详解.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后

可以继续之前保存的数据。在iOS开发中,有很多数据持久化的方案,接

下来我将尝试着介绍一下5种方案:

•plist文件(属性列表)

•preference(偏好设置)

•NSKeyedArchiver(归档)

•SQLite3

•CoreData

沙盒

在介绍各种方法之前,有必要说明以下沙盒机制。iOS程序默认情况下只能

程序自己的目录,这个目录被称为“沙盒”。

1.结构

既然沙盒就是一个文件夹,那就看看里面有什么吧。沙盒的目录结构如下:

1应用程序包

2Documents

3Library

4Caches

5Preferences

6tmp

a2.目录特性

虽然沙盒中有这么多文件夹,但是没有文件夹都不尽相同,都有各自的特性。所

以在选择存放目录时,一定要认真选择适合的目录。

应用程序包:这里面存放的是应用程序的源文件,包括资源文件和可执行文件。

1NSString*path=[[NSBundlemainBundle]bundlePath];

2NSLog(@%@,path);

Documents:最常用的目录,iTunes同步该应用时会同步此文件夹中的内容,适

合重要数据。

1NSString*path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,N

2NSLog(@%@,path);

Library/Caches:iTunes不会同步此文件夹,适合体积大,不需要备份的非

重要数据。

1NSString*path=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSU

2NSLog(@%@,path);

Library/Preferences:iTunes同步该应用时会同步此文件夹中的内容,通常保存

应用的设置信息。

tmp:iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文

件,所以此目录适合保存应用中的一些临时文件,用完就删除。

1NSString*path=NSTemporaryDirectory();

2NSLog(@%@,path);

plist文件

plist文件是将某些特定的类,通过XML文件的方式保存在目录中。

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

1NSArray;

2NSMutableArray;

3NSDictionary;

4NSMutableDictionary;

5NSData;

6NSMutableData;

7NSString;

8NSMutabtring;

9NSNumber;

10NSDate;

1.获得文件路径

1NSString*path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory

2NSString*fileName=[pathstringByAppendingPathComponent:@123.plist]

2.

1NSArray*array=@[@123,@456,@789];

2[arraywriteToFile:fileNameatomically:YES];

3.

1NSArray*result=[NSArrayarrayWithContentsOfFile:fileName];

2NSLog(@%@,result);

4.注意

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

•时使用writeToFile:atomically:方法。其中atomically表示是否需要先

写入一个辅助文件,再把辅助文件拷贝到目标文件地址。这是更安全的写入

文件方法,一般都写YES。

文档评论(0)

lzjbook118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档