数据存储小结

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 13:05 点击:

 

 

首选项设置存储

NSUserDefaults 以及通过它控制的SettingBundle  NSUserDefaults 用来保存一些设置,他会自动写到何时的位置。

NSUbiquitousKeyValueStore 多平台同步设置,限制是大小64k,开启entitlement,唯一Apple ID(还要考虑无法连接到iCloud网络时的情形)

文件存储

一.目录描述

<Application_Home>/AppName.app bundle目录,包括程序本身。往里面些东西会导致签名改变和重启程序。初始同步后iTunes不备份此目录。

<Application_Home>/Documents/ 存储用户文档和程序数据。通过文件共享可以使其可见。iTunes备份之。

<Application_Home>/Documents/Inbox 其他程序要求本程序打开的文档。可读删,不可增加修改。要改变可以先移出来。iTunes备份之。

<Application_Home>/Library/ 非用户数据文件存储的根目录。用其中标准或自定义的文件夹备份不被用户可见的数据。不应用这个目录存储用户数据。iTunes备份之。

  ~Library/Application Support/<bundle_ID> 为用户创建管理的资源和数据文件。用这个目录存储程序状态信息,下载的文件甚至用户创建但同意你管理的数据。自动保存文件。

  ~/Library/Caches/<bundle_ID> 用来存储缓存文件或者程序可以简单重建的文件的目录。

<Application_Home>/tmp/ 临时文件目录,可能被系统删除,不应期望始终存在。不被iTunes备份。

得到目录地址

URLsForDirectory:inDomains: method 返回NSURL形式的目录地址

NSSearchPathForDirectoriesInDomains 返回字符串形式的目录地址

NSHomeDirectory 返回程序根目录

NSTemporaryDirectory 返回临时文件目录

相关变量定义

NSSearchPathDirectory

enum {

NSApplicationDirectory = 1,//Supported applications (/Applications)

NSDemoApplicationDirectory,//Unsupported applications and demonstration versions

NSDeveloperApplicationDirectory,//Developer applications (/Developer/Applications)

NSAdminApplicationDirectory,//System and network administration applications

NSLibraryDirectory,//Various user-visible documentation, support, and configuration files (/Library)

NSDeveloperDirectory,//Developer resources (/Developer)

NSUserDirectory,//User home directories (/Users)

NSDocumentationDirectory,//

NSDocumentDirectory,//

NSCoreServiceDirectory,//Location of core services (System/Library/CoreServices)

NSAutosavedInformationDirectory = 11,//Location of user’s autosaved documents Library/Autosave Information

NSDesktopDirectory = 12,//

NSCachesDirectory = 13,//Location of discardable cache files (Library/Caches)

NSApplicationSupportDirectory = 14,//Location of application support files (Library/Application Support)

NSDownloadsDirectory = 15,//

NSInputMethodsDirectory = 16,//

NSMoviesDirectory = 17,//

NSMusicDirectory = 18,//

NSPicturesDirectory = 19,//

NSPrinterDescriptionDirectory = 20,//

NSSharedPublicDirectory = 21,//

NSPreferencePanesDirectory = 22,//

NSItemReplacementDirectory = 99,//

NSAllApplicationsDirectory = 100,//

NSAllLibrariesDirectory = 101//

};

typedef NSUInteger NSSearchPathDirectory;

enum {

NSUserDomainMask = 1,//用户主目录中

NSLocalDomainMask = 2,//当前机器中

NSNetworkDomainMask = 4,//网络中可见的主机

NSSystemDomainMask = 8,//系统目录,不可修改(/System)

NSAllDomainsMask = 0x0ffff,//全部

};

typedef NSUInteger NSSearchPathDomainMask;

二.存储方式

(一).属性列表(plist)

array,dictionary,data,string,NSNumber,NSDate 等ns对象直接写入plist文件中保存.

(二).归档文件

实现NSCoding协议(NSCopy也要实现?没实现也成功了。。)

编解码类说明

NSKeyedArchiver

创建

- (id)initForWritingWithMutableData:(NSMutableData *)data // 归档数据写到data中

归档数据

+ (NSData *)archivedDataWithRootObject:(id)rootObject // 归档到data中

+ (BOOL)archiveRootObject:(id)rootObject toFile:(NSString *)path // 归档到文件中

- (void)

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Request.ServerVariables 参数大全
      • 执行全文索引时出现权限不足的解决方法
      • 导入excel文件处理流程节点的解决方案
      • MongoDB安装为Windows服务方法与注意事项
      • 查看sql修改痕迹(SQL Change Tracking on Table)
      • App数据层设计及云存储使用指南
      • PostgreSQL启动过程中的那些事三:加载GUC参数
      • Percolator与分布式事务思考(二)
      • 写给MongoDB开发者的50条建议Tip1
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1