UserDefault
来自于:AC模块工作室立即使用
概述
iOS 沙盒机制
每个 iOS 程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。应用必须待在自己的沙盒里,其他应用不能访问该沙盒(通过shareAction模块分享除外)。当然该应用也不能访问其它应用的沙盒(某些系统资源除外,如系统相册等,编译之前需申请访问权限)。
沙盒中的目录
Documents (fs://协议对应的路径的根目录)保存应用程序的重要数据文件和用户数据文件等。用户数据基本上都放在这个位置(例如从网上下载的图片或音乐文件),该文件夹在应用程序更新时会自动备份,在连接iTunes时也可以自动同步备份其中的数据。
Library/Caches:(cache://协议对应的路径的根目录)保存应用程序使用时产生的支持文件和缓存文件(保存应用程序再次启动过程中需要的信息),还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录并且可能被其他工具清理掉其中的数据。
iOS 中的 NSUserDefault
它就是持久化数据的一种方式,主打轻量级的用户配置信息。它是单例的,并且是线程安全的,是以键值对的形式保存在沙盒中,最下面还是用plist文件进行保存。 本模块即封装了原生的 NSUserDefault 的相关接口。
setValueForKey
设置数据
setValueForKey({params},callback(ret))
params
key:
- 类型:字符串
- 描述:设置数据的 Key
value:
- 类型:字符串、数字、布尔登基本数据类型
- 描述:设置的数据,注意要传基本数据类型,如果是数组这样的,其包含的元素也都必须是基本数据类型
示例代码
var UserDefault = api.require('UserDefault');
UserDefault.setValueForKey({
key:'userInfo',
value:{
username:'girl',
password:'123',
sexy: true
}
});
可用性
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
getValueForKey
根据 key 获取数据
getValueForKey({params},callback(ret))
params
key:
- 类型:字符串
- 描述:获取数据的 Key
callback(ret)
ret:
- 类型:JSON 对象
- 描述:返回对应的 value ```
示例代码
var UserDefault = api.require('UserDefault');
UserDefault.getValueForKey({
key:'userInfo'
},function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
removeValueForKey
根据 key 移除数据
removeValueForKey({params},callback(ret))
params
key:
- 类型:字符串
- 描述:要获取的数据的 Key
示例代码
var UserDefault = api.require('UserDefault');
UserDefault.removeValueForKey({
key:'userInfo'
});
可用性
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
valueRepresentation
获取之前设置的所有数据
valueRepresentation(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:返回设置的所有数据
- 内部字段: 同设置的格式
示例代码
var UserDefault = api.require('UserDefault');
UserDefault.valueRepresentation(function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
registerDefaults
设置默认数据
比如: //设置默认值 var UserDefault = api.require('UserDefault'); UserDefault.registerDefaults({ appSkin:'white' });
UserDefault.getValueForKey({ key:'appSkin' },function(ret) { api.alert({msg:JSON.stringify(ret)}); //此时ret是 {appSkin:'white'} });
//设置数据 UserDefault.setValueForKey({ key:'appSkin', value:'dark' });
UserDefault.getValueForKey({ key:'appSkin' },function(ret) { api.alert({msg:JSON.stringify(ret)}); //此时ret是 {appSkin:'dark'} });
//移除数据 UserDefault.removeValueForKey({ key:'appSkin' });
UserDefault.getValueForKey({ key:'appSkin' },function(ret) { api.alert({msg:JSON.stringify(ret)}); //此时ret是 {appSkin:'white'} });
registerDefaults({params},callback(ret))
params
defaultJSON:
- 类型:JSON 对象
- 描述:设置的默认数据
示例代码
var UserDefault = api.require('UserDefault');
UserDefault.registerDefaults({
userInfo:{
username:'girl',
password:'123',
sexy: true
}
});
可用性
iOS 系统,android 系统
可提供的 1.0.0 及更高版本