设为首页 加入收藏

TOP

数据存储小结(一)
2014-11-24 03:13:25 来源: 作者: 【 】 浏览:9
Tags:数据 存储 小结

首选项设置存储

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

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

文件存储

一.目录描述

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

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

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

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

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

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

/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)finishEncoding // 调用后不能继续归档数据,归档结束必须调用(公共方法归档的不用理这个了)

–outputFormat // data编码方式,xml还是二进制

–setOutputFormat:

编码数据

– encodeBool:forKey:

–encodeBytes:length:forKey:

–encodeConditionalObject:forKey:

–encodeDouble:forKey:

–encodeFloat:forKey:

–encodeInt:forKey:

–encodeInt32:forKey:

–encodeInt64:forKey:

–encodeObject:forKey:

代理委托

–delegate

–setDelegate:

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇远程登录阿里云上的MySQL 下一篇视图--虚拟表

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)
·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)