当前位置: 首页 > news >正文

动态网站用什么做的青岛网站建设技术外包

动态网站用什么做的,青岛网站建设技术外包,利用博客做网站,门户网站开发多少钱目录 1. 简介2. 基本使用2.1 步骤2.2 对应接口2.2 示例代码 3. 常用接口及属性3.1 存储3.2 获取 4. 注意点4.1 NSUserDefaults 存储的对象全是不可变的4.2 将自定义类型数据读写 NSUserDefaults4.3 非即时写入 5.参考链接 1. 简介 NSUserDefaults是一个单例,在整个程…

目录

  • 1. 简介
  • 2. 基本使用
    • 2.1 步骤
    • 2.2 对应接口
    • 2.2 示例代码
  • 3. 常用接口及属性
    • 3.1 存储
    • 3.2 获取
  • 4. 注意点
    • 4.1 NSUserDefaults 存储的对象全是不可变的
    • 4.2 将自定义类型数据读写 NSUserDefaults
    • 4.3 非即时写入
  • 5.参考链接

1. 简介

NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提

可以保存的数据结构。在NSUserDefaults中,可以保存的数据结构有:

  • NSString 字符串
  • NSNumber 数字
  • NSArray 数组
  • NSDictionary 字典
  • NSDate 日期
  • NSData 二进制数据
  • 如果需要保存自定义对象,则需要将对象归档为NSData,再进行保存。详情见section 4.2

2. 基本使用

2.1 步骤

  1. 获取NSUserDefaults实例
  2. 获取数据/删除数据/存储数据
  3. 通知写入

2.2 对应接口

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; //获取NSUserDefaults实例。
[defaults setObject:object forKey:key];   //存储数据。
id object = [defaults objectForKey:key];  //获取数据。用key获取保存的对象,返回值为id类型,所以可以接任何指针
[defaults removeObjectForKey:key];   //删除数据。使用key删除保存的值NSString *appdomainStr = [[NSBundle mainBundle] bundleIdentifier];
[defaults removePersistentDomainForName:appdomainStr];  //一次性删除全部存储[defaults synchronize];  //通知立刻写入。保存完数据后,如果马上抛出异常,可能会丢失数据,所以建议保存完后,调用synchronize方法,通知马上写入

2.2 示例代码

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"Wally" forKey:@"NAME"];
[defaults setObject:number forKey:@"NUMBER"];
id name = [defaults objectForKey:@"NAME"];
id num = [defaults objectForKey:@"NUMBER"];
[defaults removeObjectForKey:@"ARRAY"];
[defaults synchronize];

3. 常用接口及属性

NSUserDefaults可以存储上面说到的6种类型,苹果爸爸还给我们提供了直接转换出对应类型的方法,避免每次都写强转代码。

3.1 存储

//存储Int值
[defaults setInteger:123 forKey:@"INT"];//存储布尔值
[defaults setBool:YES forKey:@"BOOL"];//存储浮点型
[defaults setFloat:3.14 forKey:@"FLOAT"];//存储数组
NSArray* arr = [NSArray arrayWithObjects:@"Wally", @"Barry", @"Rose", nil];
[defaults setObject:arr forKey:@"ARRAY"];

3.2 获取

//获取Int值
[defaults integerForKey:@"INT"];//获取BOOL布尔值
[defaults boolForKey:@"BOOL"];//获取浮点值
[defaults floatForKey:@"FLOAT"];//获取数组
[defaults objectForKey:@"ARRAY"];

4. 注意点

4.1 NSUserDefaults 存储的对象全是不可变的

NSUserDefaults 存储的对象全是不可变的(这一点非常关键,弄错的话程序会出bug

NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"123",@"234", nil];
NSArray * array = [NSArray arrayWithArray:mutableArray];
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
[user setObject:array forKey:@"记住存放的一定是不可变的"];

4.2 将自定义类型数据读写 NSUserDefaults

使用NSKeyedArchiver 对数据进行归档 反归档(iOS的归档,应该就类似于数据的序列化和反序列化机制)

  1. 定义一个遵守NSCoding协议的类
  2. 复写NSCoding协议中的initWithCoder方法和encodeWithCoder方法,initWithCoder方法是为了解档,用数据恢复对象,encodeWithCoder方法是为了将对象归档
  3. 归档(序列化):使用NSKeyedUnarchiver,调用archivedDataWithRootObject方法,归档对象,即将自定义类型对象转换成NSDate类型
  4. 解档(反序列化):使用NSKeyedUnarchiver,调用unarchiveObjectWithData方法,解档对象,即将data类型转换对象成自定义类型

写入数据

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:student];    //归档
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
[user setObject:data forKey:@"oneStudent"];
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

读取数据

// 读取data数据
NSData *data = [user objectForKey:@"oneStudent"];// 将data类型转换成student类型
Student *student = [NSKeyedUnarchiver unarchiveObjectWithData:data];    //解档

4.3 非即时写入

UserDefaults是根据时间戳定时的把缓存中的数据写入本地磁盘,而非即时写入。为了防止数据丢失,我们在对重要的数据保存时使用synchornize方法强制写入。但是也要注意,不用频繁的使用synchornize,这样毕竟影响性能和效率,

5.参考链接

iOS NSUserDefaults使用
https://www.jianshu.com/p/569be39260f2

http://www.hkea.cn/news/504206/

相关文章:

  • 移动端h5网站开发服务企业seo推广
  • 管理公司网站建设引擎搜索优化
  • 上市公司专利查询网站百度广告投放价格
  • html5电商网页制作网站怎么seo关键词排名优化推广
  • 大同网站建设黄冈网站推广优化找哪家
  • 昌邑网站建设站长之家网站排名
  • 建设企业网站的需求分析免费域名
  • 重庆欧勒精细有限公司网站策划书百度竞价推广开户
  • 怎么做一键添加信任网站ios aso优化工具
  • ps做网站的分辨率多少钱苹果cms永久免费建站程序
  • 网站推广积分常用于网站推广的营销手段是
  • wordpress时间云储存沈阳网站制作优化推广
  • h5响应式网站建设竞价托管哪家效果好
  • 企业解决方案参考网站品牌软文营销案例
  • 做淘客要有好的网站上海百度seo
  • 网站建设 seojsc宁德seo推广
  • 建立网站的作用信息流优化师工作总结
  • 如何建设物流网站近期时事新闻
  • 网站开发大赛发言稿网址搜索
  • 论坛类型的网站怎么做拉新推广平台有哪些
  • pc官方网站视频专用客户端app
  • 成都哪家做网站建设比较好搜索关键词排名查询
  • 无锡网站优化推广广州网站推广运营
  • 电子商务网站开发的步骤短视频seo排名系统
  • 如何用模板做网站视频河北电子商务seo
  • 动态网站代码设计做小程序的公司
  • 网站建设软件开发的新闻北京关键词优化报价
  • 在上海做兼职在哪个网站好百度售后电话人工服务
  • 深圳网站开发招聘谁能给我个网址
  • 长沙做个网站多少钱怎样免费给自己的公司做网站