首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

编码篇-持久化NSUserDefaults

前言 NSUserDefaults类,以字典形式保存数据,IOS会自动把字典的键值对转换成对应的XML文件(也就是plist文件),这个文件会被保存到APP的沙盒目录(路径为Library/Preferences...值得注意的地方 NSUserDefault 支持的存储类型有:NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat...Attempt to insert non-property list object 报错原因, 从NSUserDefaults返回的值是不可改变的,即便是你存储的时候使用的是可变的值。...{@"color":@"blue"}]; 这时NSUserDefaults里面'color'=='blue'; 2.如果你app又重新设置了'color'=='red'; 3.这时你重新运行一下你的...此时依然是'color'=='red'; 储存自定义对象 使用归档存储(真的储存) 一个NSUserDefaults的对象必须是属性表,这也就是说我们可以存储NSData,NSString,NSNUmber

1.2K10

iOS APP开发全局token的使用

APP开发过程少不了全局token的使用,今天主要和大家分享一下NSUserDefaults的使用。...NSUserDefaults是一个单例,整个程序只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因。...使用 NSUserDefaults 存储自定义对象的最初,我们必须认识NSUserDefaults可以存储哪一些类型的数据,下面一一列出: NSUserDefaults支持的数据类型有:NSNumber...NSUserDefaults *tokenid = [NSUserDefaults standardUserDefaults]; [tokenid setObject:token forKey:@"...tokenid"]; [tokenid synchronize]; 将数据取出也很简单,只需要取出key 对应的值就好了,代码如下: NSUserDefaults *tokenid = [NSUserDefaults

36510

iOS相同IP,不同端口,session失效的问题

背景 公司https服务器(端口443)进行正常登陆业务等处理 https://ip1:443/ 然后端口444服务器进行资料文件上传等处理 https://ip1:444/ 因为服务器https...://ip1:443/登陆成功之后对cookie的session进行校验保存,而一旦出现访问443->444->443,就是进行文件上传操作后,再调用443端口后,服务器对session校验失败,出现会话超时问题...原因 因为session状态是靠cookie存储的jsessionid实现的,所以,由于两个服务器的sessionid,名称、域、路径都一样,导致sessionid被覆盖,从而导致session失效...cookie不区分端口号 cookie区分域、路径、名称 处理办法 访问另一个端口前,把cookie缓存到本地,然后返回443端口后,再把cookie重新写入 导出cookie并缓存: //导出cookie...*sessionOnly =[NSNumber numberWithBool:cookie.sessionOnly]; NSNumber*isSecure = [NSNumber

2K30

iOS常用的数据存储方式

1.1 目录结构分析 1.2 应用沙盒目录的获取方式 1.3 偏好设置(standardUserDefaults 的使用) 1.4 存储自定义类型对象到NSUserDefaults 2.1 什么是Keychain...一般存储体积大、不需要备份的非重要数据 5 Library/Preference: 保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录查找应用的设置信息。...NSUserDefaults设置数据的时候,不是立即写入,而是根据时间戳定时地把缓存的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序就终止了。...{ // return [SessionMgr Instance].strOrderAmount; NSNumber *numShowIntroduce = [[NSUserDefaults...Keychain是OS X和iOS都提供的一种安全存储敏感信息工具。 比如,我们可以Keychain存储用户名、密码等信息。

1.9K20

iOS存储自定义类型到NSUserDefaults数据库

存储自定义类型对象到NSUserDefaults 3.1 基本用法 3.2 例子:创建一个处理数据库的工具类 3.3 数据库缓存性能进行优化 3.4 测试验证 前言 一般通过以下两种方式使用磁盘缓存:...当每页缓存容量8192B到16384B之间时,数据库拥有最好的读写性能。 如果单条数据小于100KB时,则从SQLite数据库读取数据速度更快;单条数据大于100KB时,则从文件读取速度更快。...因此,iOS应用程序里,磁盘缓存的数据一般都存储沙盒中。...而Preferences文件夹保存的是应用程序的偏好设置,即iOS系统的设置应用会从该目录读取偏好设置信息。因此,该目录一般不用于存储应用程序产生的数据。...{ // return [SessionMgr Instance].strOrderAmount; NSNumber *numShowIntroduce = [[NSUserDefaults

96510

Cookie存储对象

https://blog.csdn.net/huyuyang6688/article/details/46955119 背景介绍 ---- 做项目过程,用户登陆之后,需要将用户的信息存到Cookie...,但因为Cookie只能存储字符串,所以想到了先把用户实体序列化成Json串,存储Cookie,用到的时候再拿出来反序列化。...串反序列化为实体 UserInfoViewModel userInfo = JsonToObject(strUserInfo) as UserInfoViewModel; 说明:实体的属性值有中文时,序列化的字符串存储到...Cookie时会产生乱码,为了防止产生乱码,我们存入Cookie之前先用UrlEncode()和UrlDecode()对Json串进行编码与解码。...而且,一般的浏览器支持的Cookie存储的容量为4k(差也就差一两个字节),足够存储一个经过序列化的对象了。

3.7K40

iOS应用数据存储(数据持久化)的常用方式一、iOS数据持久化方式二、应用沙盒(应用程序的文件夹)三、使用方法

寻找,NSCachesDirectory的话就是cache文件夹寻找 常用枚举: NSDocumentDirectory NSCachesDirectory 参数2: NSUserDomainMask...、NSArray、NSData、NSNumber等类型,就可以使用, 注意:不能存储自定义对象,会失败的 存方法:writeToFile 读方法:如字典, dictionaryWithContentsOfFile...2、偏好设置 通过NSUserDefaults就能直接访问软件的偏好设置(Library/Preferences) UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存的数据写入本地磁盘...写入步骤: (1) 获取偏好设置对象 NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; (2)写入 [userDefault...但有时候可能想将多个对象写入到同一个文件,那么就要使用NSData来进行归档对象,NSData可以为一些数据提供临时存储空间,以便随后写入文件,或者存放从磁盘读取的文件内容。

2.5K70

iOS - 模型数据持久化保存实现

image.png iOS开发实际,可以 AppDelegate.m 的 didFinishLaunchingWithOptions方法,快速定位需要当前需要开发的控制器 但是,如果要开发的控制器...> for key product 原因 :NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,...使用归档先将model转为NSData,再存储 思路:既然NSUserDefaults不支持自定义类型存储,但是支持NSData类型存储,就通过NSKeyedArchiver转成NSData类型,再存储...standardUserDefaults] setObject:data forKey:key]; } //通过key获取NSUserDefaults保存的数据,根据传入的modelClass...= [MNCacheClass mn_getSaveModelWithkey:@"studentModel" modelClass:[StudentModel class]]; image.png 实际开发的使用流程

1.9K40

iOS开发——数据持久化之归档

实际的项目开发,数据持久化是我们必须要考虑的一个事情,如何把我们需要的数据进行持久化处理。...而昨天我实际工作,有一个数组NSMutableArray需要存储,但是使用时,报了一个错误 reason: '*** -[NSUserDefaults setObject:forKey:]: attempt...可是明明NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL...NSKeyedArchiver能够存储的数据范围很广,因为它对应着MVC的Model层,即实体类。程序,我们会在Model层定义很多的entity,例如name、room、device等。...要使对象可以归档,对象必须实现NSCoding协议,大部分对象都符合NSCoding的协议,一般我们可以我们的Model类实现NSCoding协议。

59110

NSUserDefaults数据保存报错:Attempt to set a non-property-list object.

使用NSUserDefaults的时候插入数据有时候会报以下错误: ?...1.这种错误的原因是插入了不识别的PaymentModel数据类型,NSUserDefaults支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary...将PaymentModel类型变成NSData类型就必须实现归档,PaymentModel.h文件遵守NSCoding协议,PaymentModel.m文件实现encodeWithCoder和initWithCoder...self.picture = [aDecoder decodeObjectForKey:@"picture"]; } return self; } @end 2.有时NSUserDefaults...报存数组,字典,还是报错,原因是我里边的数据结构有"",而NSUserDefaults是不能被成功解析并存入的,所有存入之前需要将里边的""改成""即可。

93830

.NET调用存储过程

因为做项目要用到数据库,因此存储过程是必不可少的,看了一点如何在.NET调用存储过程的资料,颇有点心得,觉得这个东西是当用到数据库的时候必须要会的一项技术。...下面是它的定义: 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。...存储过程是数据库的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。....NET调用存储过程。...VS2005里面新建一个控制台程序,新建一个方法如下: public void nopara() { SqlConnection con = new SqlConnection

2.1K10

控制流存储数据

如果做得好,将存储在数据的程序状态存储控制流,可以使程序比其他方式更清晰、更易于维护。 在说更多之前,重要的是要注意并发性不是并行性。...不管名称如何,这篇文章的基本观点是,根据多个独立执行的控制流编写程序,允许您将程序状态存储一个或多个控制流的执行状态,特别是程序计数器(该部分正在执行的行)和堆栈上。...这是一个看似微不足道的问题,它演示了控制流存储程序状态意味着什么。假设我们正在从文件读取字符,并希望扫描 C 样式的双引号字符串。在这种情况下,我们有一个非并行程序。...这个程序如此不透明的主要原因是它的程序状态被存储为数据,特别是名为 state 的变量。当可以代码存储状态时,这通常会导致程序更清晰。...在这些情况下,调用方一次传递一个字节的输入序列意味着模拟原始控制流的数据结构显式显示所有状态。 并发性消除了程序不同部分之间的争用,这些部分可以控制流存储状态,因为现在可以有多个控制流。

1.2K31

Kubernetes ,如何动态配置本地存储

作为 Kubernetes 社区 sig-storage 的贡献者之一,才云科技新版本推出了基于 Local PV 的本地存储功能,为企业结合多种通用、专用存储解决方案满足使用需求提供了更强大的支撑...发布 | 才云 Caicloud 作者 | iawia002 企业 IT 架构转型的过程存储一直是个不可避免的大问题。...今年 3 月发布的 Kubernetes v1.14 ,社区对此的评价是: 出于性能和成本考量,分布式文件系统和数据库一直是 Local PV 的主要用例。...,选择存储量足够大的节点,能够将使用本地存储的 Pod 调度到正确的拓扑域上,例如上面例子的一个节点或者一个特定的区域。...创建 StorageClass 时需要选择的节点和磁盘等信息会先记录在 parameters ,数据结构定义如下(JSON 格式化成普通字符串后存储 parameters ): ?

3.2K10
领券