- NSCoding对象存储(注意:以后使用NSSecureCoding)
皮蛋豆腐酱油
1.NSCoding是一个协议,遵守NSCoding协议的类,可以实现这个类到NSData的互相转换2.使用场景NSUserDefaults将自定义的类转换成NSData实例,然后存储到偏好存储中。文件存储:NSData类提供了一个方法,可以直接将NSData实例存储到文件中3.相关知识介绍NSCoder类是一个抽象类,用来被其他的类继承NSKeyedArchiver和NSKeyedUnarchi
- NSUserDefault
愤怒的八哥
简介它是单例的,并且是线程安全的,是以键值对的形式保存在沙盒中,最下面还是用plist文件进行保存。支持存储的数据类型是id,NSObject(自定义对象),NSString,NSNumber,NSArray,NSDictionary,NSData。在进行自定义对象的归档时需要实现NSCoding协议。域在NSUserDefault中存在域的概念,包含5个部分域名含义NSArgumentDomai
- 【iOS】数据存储方式总结(持久化)
西邮Jaxon_Cheung
ioscocoamacos
在iOS开发中,我们经常性地需要存储一些状态和数据,比如用户对于App的相关设置、需要在本地缓存的数据等等,本篇文章将介绍六个主要的数据存储方式iOS中数据存储方式(数据持久化)根据要存储的数据大小、存储数据以及存储类型,存储方式主要分为一下几种:Plist(属性列表),不能存放自定义对象Preference(偏好设置/NSUserDefaults)NSCoding(NSKeyedArchiver
- Swift中Runtime实现归解档
冲云简
首先定义个名为PersonModel类,在类中实现NSCoding方法classPersonModel:NSObject,NSCoding然后在开始使用Archiver进行数据持久化存本地//路径letpath=NSSearchPathForDirectoriesInDomains(.cachesDirectory,.userDomainMask,true).lastletfilePath=pat
- 【iOS数据持久化】归档解档(NSKeyedArchiver/ NSKeyedUnarchiver)
Code&Ocean
iOS移动开发数据持久化NSKeyeArchiverNAkeyUnarchiver
简介归档(Archive)也称为序列化(serialization),把对象转化为字节码,以文件的形式存储在磁盘上,只要遵循了NSCoding协议的对象都可以实现归档和解档(大部分foundation和CocoaTouch类都可以),将文档上的字节码转化为对象的过程叫做解档(unarchive)也叫反序列化(unserialization)归档的数据类型要求;NSData、NSString、NSN
- iOS数据持久化-归档NSKeyedArchiver
house.zhang
iOS开发数据ios开发应用
归解档操作(NSKeyedArchiver/NSKeyedUnArchiver)通过对自定义对象进行操作。归解档后的自定义对象很方面进行持久化操作,方便于对象以文件的形式进行存储。归解档的对象需要实现NSCoding协议。1、自定义对象实现NSCoding协议@interfaceUserModel:NSObject@property(nonatomic,copy)NSString*name;@pr
- iOS数据持久化 归档
ISX-YC
存储ios数据
归档(序列化),把对象转为字节码,以文件的形式存储到磁盘上;程序运行过程中或者当再次打开程序的时候,可以通过解归档(反序列化)还原这些对象。只要遵循了NSCoding协议的对象都可以通过它实现序列化,由于绝大多数支持存储数据的Foundation和CocoaTouch类都遵循了NSCoding协议,因此,对于大多数类来说,归档相对而言还是比较容易实现的。1.Foundation框架中单个对象的归档
- NScoder 和 NScoding
小小小Lucky
NScoder和NScoding0.03810-1014:14字数387阅读8782NScoder和NScoding有将自己定义的类的对象写入磁盘的作用NScoding是一个协议,主要有下面两个方法-(id)initWithCoder:(NSCoder*)coder;//从coder中读取数据,保存到相应的变量中,即反序列化数据-(void)encodeWithCoder:(NSCoder*)co
- ios面试题7
紫色冰雨
三.数据存储1.数据存储技术1>数据存储的几种方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3CoreData2>各自特点Plist:属性列表是一种XML格式的文件,拓展名为plist如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用write
- IOS-MJExtension一句话搞定对象归档
c5550ea746f8
MJExtension很强大,几乎支持现有所有的模型、字典、json数据转换,而且效率非常高以前写对象归档的时候,需要让这个对象实现NSCoding协议,而且要对每一个需要归档的属性做一些encode和decode操作,例如你之前的代码可能是这样子的Person.h文件#import"Person.h"@interfacePerson:NSObject@property(nonatomic,cop
- YYImage源码浅析
好有魔力
简介YYImage是与UIImage完全兼容的子类,YYImage扩展了UIImage使其支持WebP,GIF,APNG图片数据的解码.它也支持NSCoding协议来进行归解档.YYImage的接口@interfaceYYImage:UIImage//使用图片名称加载图片,此方法不会缓存图片+(nullableYYImage*)imageNamed:(NSString*)name;//使用图片路径
- NSKeyedArchiver归档
齊同学
简介归档在iOS中是另一种形式的序列化,只要遵循了NSCoding协议的对象都可以通过它实现序列化。由于决大多数支持存储数据的Foundation和CocoaTouch类都遵循了NSCoding协议,因此,对于大多数类来说,归档相对而言还是比较容易实现的。1.遵守NSCoding协议NSCoding协议声明的两个方法,这两个方法都是必须实现的。//解档来获取一个新对象。-(nullableinst
- Swift-自动归档存储用户信息
紫云夕月
importUIKit@objcMembers////在swift4.0之后编辑器是不会对属性加隐式的@objc的如果不加@objcMembers运行时是获取不到属性和ivar的classBaseCodingModel:NSObject,NSCoding{overrideinit(){super.init()}//MARK:-归档funcencode(withaCoder:NSCoder){for
- NSCoding & Codable & NSKeyedArchiver
七分呗轻唱
缓存符合NSCoding协议的任意对象-(void)encodeWithCoder:(NSCoder*)coder;-(nullableinstancetype)initWithCoder:(NSCoder*)coder;//NS_DESIGNATED_INITIALIZERexampleoverridefuncencode(withcoder:NSCoder){super.encode(with
- iOS_NSCoding与NSSecureCoding
丘名山
NSCodingNSCoding是把数据存储在iOS和MacOS上的一种极其简单和方便的方式,它把模型对象直接转变成一个文件,然后再把这个文件重新加载到内存里/存到本地Model*model=[[Modelalloc]init];[NSKeyedArchiverarchiveRootObject:modeltoFile:filePath];//从本地取出Model*model=[NSKeyedUn
- iOS 文件缓存(NSKeyedArchiver、Codabel、)
不动科气坏了
在使用swift5进行对象的硬盘缓存时,遇到问题不明白,做简单记录。环境在OC中,对象实现NSCoding协议,使用NSKeyedArchiver进行对象解归档即可,也未遇到什么问题。(实际应用更简单,使用MJExtension,这个库为model做了很多事情)swift中,项目中对象都是struct,而NSCoding协议需要继承NSObject,而在swift4为我们提供了Codable协议遵
- 使用NSSecureCoding协议进行对象编解码
一代骄马
http://blog.jobbole.com/67655/在iOS6中,苹果引入了一个新的协议,是基于NSCoding的,叫做NSSecureCoding。NSSecureCoding和NSCoding是一样的,除了在解码时要同时指定key和要解码的对象的类,如果要求的类和从文件中解码出的对象的类不匹配,NSCoder会抛出异常,告诉你数据已经被篡改了。大部分支持NSCoding的系统对象都已经
- Swift自定义类的存储
topws1
在Swift开发中,许多时候会涉及到存储自定义的类,不管是存储到本地文件还是远程服务器,都会涉及到编码和解码的问题。下面就来介绍一下在Swift中怎么存储自定义的类。在Swift中存储自定义的类有两种方法,一种是Swift3.0版本的NSCoding,还有一种是Swift4.0版本的Codable。我们就两种方法来谈谈其中的区别吧。Swift3.0:NSCoding在NSCoding这个协议在OC
- Swift中用户登录保存用户token(用归档解档)
专心致志的程序员
我们在用swift开发过程中,涉及到用户登录的情况就会保存我们用户的token,这样做的目的不但能实现保存用户登录状态的目的,有时候我们的请求也会要求传入token。对于这些比较小的数据存储我们一般用归档,解档来完成,下面分享一些我的代码,做用户归档,解档第一步:创建一个我们用户信息的model集成NSObject,这里要注意的是在Swift中的归档解档我们要实现NSCodeing协议的。我们继续
- 实现NSCoding的自动归档和自动解档
一笔春秋
原理通过以下方法获取类的所有属性,然后进行保存和读取的操作funcclass_copyIvarList(_cls:AnyClass?,_outCount:UnsafeMutablePointer?)->UnsafeMutablePointer?代码实现代码为CSDN博主「番薯大佬」的原创文章,遵循CC4.0BY-SA版权协议原文链接:https://blog.csdn.net/potato512/
- Objective-C NSData与实现NSCoding协议进行序列化和反序列化
weixin_30585437
移动开发
1.NSDataNSData是Objective-C语言中数据的基本类型,其成分可以理解为字节指针和长度的封装的类,来看看源代码@interfaceNSData:NSObject@property(readonly)NSUIntegerlength;/*The-bytesmethodreturnsapointertoacontiguousregionofmemorymanagedbytherece
- Swift4.2如何优雅的使用归档解档
船长_
Swift4之前归档解档model写法@objcclassUserInfo:NSObject,NSCoding{varname:Stringvarage:Intvaremail:Stringoverrideinit(){super.init()}funcencode(withaCoder:NSCoder){aCoder.encode(name,forKey:"name")aCoder.encode
- iOS 应用沙盒,归档,解档,偏好设置,plist存储,NSData,自定义对象归档解档
KingWorld
1、iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3CoreData2、应用沙盒每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer)模拟器应用沙盒
- 分享一个实用的归解档方法
兰州啊兰州
归档和解档在开发中应该是经常使用的,常用于本地数据的存取。相信大部分的兄弟们刚开始应该是和我一样的处理:假设现在有一个Person类,有3个属性。先看下.h文件//Person文件//1.如果想要当前类可以实现归档与解档,需要遵守协议NSCoding@interfacePerson:NSObject@property(nonatomic,copy)NSString*name;@property(n
- Swift-NSKeyedArchiver信息本地化
PerhapYs
将归档简单封装为一个类,在使用归档的时候,只需要将需要归档的模型继承于PYArchiverObject,并调用方法即可。1.遵守NSCoding协议@objcMembersclassPYArchiverObject:NSObject,NSCoding{requiredoverrideinit(){}funcencode(withcoder:NSCoder){letmirror=Mirror.ini
- Runtime实际应用场景详解
Kevin_wzx
目录1.给分类增加属性2.方法添加和替换和KVO实现3.weak释放nil的过程4.消息转发(热更新)解决Bug(JSPatch)5.实现NSCoding的自动归档和自动解档6.实现字典和模型的自动转换(MJExtension)7.[selfclass]和[superclass]8.Runtime补充说明相关链接:https://juejin.cn/post/6844903586216804359
- 实现本地存取自定义对象
hzy1314
一.定义对象:自定义对象必须遵从nscoding协议@interfaceTestDic:NSObject@property(nonatomic,copy)NSString*pro1;@property(nonatomic,copy)NSString*pro2;@implementationTestDic-(instancetype)initWithCoder:(NSCoder*)aDecoder{
- 归档、解档
hie
1.创建类ZFPerson,遵循协议NSCoding@interfaceZFPerson:NSObject@property(strong,nonatomic)NSString*name;@property(assign,nonatomic)intage;@end2.ZFPerson类实现协议方法-(void)encodeWithCoder:(NSCoder*)aCoder{//存储成员变量个数u
- 一文详解NSSecureCoding真的安全吗
目录结语NSSecureCoding可能很多人都没用过,但是NSCoding大家应该都不陌生;你可以简单的理解为NSSecureCoding是NSCoding的安全版本。为什么NSSecureCoding比NSCoding更安全呢?如果你上网搜索这2者的区别,大部分的回答都是NSSecureCoding比NSCoding更安全,为什么更安全呢?没说(每次看到这类博主的回答真的很无语,NSSecur
- iOS 解归档
MavinShan
遵循NSCoding协议的类可以被序列化和反序列化。实现两个方法:-initWithCoder:和encodeWithCoder:。新建Person类,实现协议方法#import@interfacePerson:NSObject//遵守NSCoding协议@property(nonatomic,copy)NSString*name;@property(nonatomic,assign)NSInte
- js动画html标签(持续更新中)
843977358
htmljs动画mediaopacity
1.jQuery 效果 - animate() 方法 改变 "div" 元素的高度: $(".btn1").click(function(){ $("#box").animate({height:"300px
- springMVC学习笔记
caoyong
springMVC
1、搭建开发环境
a>、添加jar文件,在ioc所需jar包的基础上添加spring-web.jar,spring-webmvc.jar
b>、在web.xml中配置前端控制器
<servlet>
&nbs
- POI中设置Excel单元格格式
107x
poistyle列宽合并单元格自动换行
引用:http://apps.hi.baidu.com/share/detail/17249059
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:
先获取工作薄对象:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle setBorder = wb.
- jquery 获取A href 触发js方法的this参数 无效的情况
一炮送你回车库
jquery
html如下:
<td class=\"bord-r-n bord-l-n c-333\">
<a class=\"table-icon edit\" onclick=\"editTrValues(this);\">修改</a>
</td>"
j
- md5
3213213333332132
MD5
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MDFive {
public static void main(String[] args) {
String md5Str = "cq
- 完全卸载干净Oracle11g
sophia天雪
orale数据库卸载干净清理注册表
完全卸载干净Oracle11g
A、存在OUI卸载工具的情况下:
第一步:停用所有Oracle相关的已启动的服务;
第二步:找到OUI卸载工具:在“开始”菜单中找到“oracle_OraDb11g_home”文件夹中
&
- apache 的access.log 日志文件太大如何解决
darkranger
apache
CustomLog logs/access.log common 此写法导致日志数据一致自增变大。
直接注释上面的语法
#CustomLog logs/access.log common
增加:
CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-d.log 
- Hadoop单机模式环境搭建关键步骤
aijuans
分布式
Hadoop环境需要sshd服务一直开启,故,在服务器上需要按照ssh服务,以Ubuntu Linux为例,按照ssh服务如下:
sudo apt-get install ssh
sudo apt-get install rsync
编辑HADOOP_HOME/conf/hadoop-env.sh文件,将JAVA_HOME设置为Java
- PL/SQL DEVELOPER 使用的一些技巧
atongyeye
javasql
1 记住密码
这是个有争议的功能,因为记住密码会给带来数据安全的问题。 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Developer记住密码。 位置:Tools菜单--Preferences--Oracle--Logon HIstory--Store with password
2 特殊Copy
在SQL Window
- PHP:在对象上动态添加一个新的方法
bardo
方法动态添加闭包
有关在一个对象上动态添加方法,如果你来自Ruby语言或您熟悉这门语言,你已经知道它是什么...... Ruby提供给你一种方式来获得一个instancied对象,并给这个对象添加一个额外的方法。
好!不说Ruby了,让我们来谈谈PHP
PHP未提供一个“标准的方式”做这样的事情,这也是没有核心的一部分...
但无论如何,它并没有说我们不能做这样
- ThreadLocal与线程安全
bijian1013
javajava多线程threadLocal
首先来看一下线程安全问题产生的两个前提条件:
1.数据共享,多个线程访问同样的数据。
2.共享数据是可变的,多个线程对访问的共享数据作出了修改。
实例:
定义一个共享数据:
public static int a = 0;
- Tomcat 架包冲突解决
征客丶
tomcatWeb
环境:
Tomcat 7.0.6
win7 x64
错误表象:【我的冲突的架包是:catalina.jar 与 tomcat-catalina-7.0.61.jar 冲突,不知道其他架包冲突时是不是也报这个错误】
严重: End event threw exception
java.lang.NoSuchMethodException: org.apache.catalina.dep
- 【Scala三】分析Spark源代码总结的Scala语法一
bit1129
scala
Scala语法 1. classOf运算符
Scala中的classOf[T]是一个class对象,等价于Java的T.class,比如classOf[TextInputFormat]等价于TextInputFormat.class
2. 方法默认值
defaultMinPartitions就是一个默认值,类似C++的方法默认值
- java 线程池管理机制
BlueSkator
java线程池管理机制
编辑
Add
Tools
jdk线程池
一、引言
第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
- 关于hql中使用本地sql函数的问题(问-答)
BreakingBad
HQL存储函数
转自于:http://www.iteye.com/problems/23775
问:
我在开发过程中,使用hql进行查询(mysql5)使用到了mysql自带的函数find_in_set()这个函数作为匹配字符串的来讲效率非常好,但是我直接把它写在hql语句里面(from ForumMemberInfo fm,ForumArea fa where find_in_set(fm.userId,f
- 读《研磨设计模式》-代码笔记-迭代器模式-Iterator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.Arrays;
import java.util.List;
/**
* Iterator模式提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象内部表示
*
* 个人觉得,为了不暴露该
- 常用SQL
chenjunt3
oraclesqlC++cC#
--NC建库
CREATE TABLESPACE NNC_DATA01 DATAFILE 'E:\oracle\product\10.2.0\oradata\orcl\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPA
- 数学是科学技术的语言
comsci
工作活动领域模型
从小学到大学都在学习数学,从小学开始了解数字的概念和背诵九九表到大学学习复变函数和离散数学,看起来好像掌握了这些数学知识,但是在工作中却很少真正用到这些知识,为什么?
最近在研究一种开源软件-CARROT2的源代码的时候,又一次感觉到数学在计算机技术中的不可动摇的基础作用,CARROT2是一种用于自动语言分类(聚类)的工具性软件,用JAVA语言编写,它
- Linux系统手动安装rzsz 软件包
daizj
linuxszrz
1、下载软件 rzsz-3.34.tar.gz。登录linux,用命令
wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz下载。
2、解压 tar zxvf rzsz-3.34.tar.gz
3、安装 cd rzsz-3.34 ; make posix 。注意:这个软件安装与常规的GNU软件不
- 读源码之:ArrayBlockingQueue
dieslrae
java
ArrayBlockingQueue是concurrent包提供的一个线程安全的队列,由一个数组来保存队列元素.通过
takeIndex和
putIndex来分别记录出队列和入队列的下标,以保证在出队列时
不进行元素移动.
//在出队列或者入队列的时候对takeIndex或者putIndex进行累加,如果已经到了数组末尾就又从0开始,保证数
- C语言学习九枚举的定义和应用
dcj3sjt126com
c
枚举的定义
# include <stdio.h>
enum WeekDay
{
MonDay, TuesDay, WednesDay, ThursDay, FriDay, SaturDay, SunDay
};
int main(void)
{
//int day; //day定义成int类型不合适
enum WeekDay day = Wedne
- Vagrant 三种网络配置详解
dcj3sjt126com
vagrant
Forwarded port
Private network
Public network
Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点。
端口映射(Forwarded port),顾名思义是指把宿主计算机的端口映射到虚拟机的某一个端口上,访问宿主计算机端口时,请求实际是被转发到虚拟机上指定端口的。Vagrantfile中设定语法为:
c
- 16.性能优化-完结
frank1234
性能优化
性能调优是一个宏大的工程,需要从宏观架构(比如拆分,冗余,读写分离,集群,缓存等), 软件设计(比如多线程并行化,选择合适的数据结构), 数据库设计层面(合理的表设计,汇总表,索引,分区,拆分,冗余等) 以及微观(软件的配置,SQL语句的编写,操作系统配置等)根据软件的应用场景做综合的考虑和权衡,并经验实际测试验证才能达到最优。
性能水很深, 笔者经验尚浅 ,赶脚也就了解了点皮毛而已,我觉得
- Word Search
hcx2013
search
Given a 2D board and a word, find if the word exists in the grid.
The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or ve
- Spring4新特性——Web开发的增强
jinnianshilongnian
springspring mvcspring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- CentOS安装配置tengine并设置开机启动
liuxingguome
centos
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
Ubuntu上可以这样安装
sudo aptitude install libdmalloc-dev libcurl4-opens
- 第14章 工具函数(上)
onestopweb
函数
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Xelsius 2008 and SAP BW at a glance
blueoxygen
BOXelsius
Xelsius提供了丰富多样的数据连接方式,其中为SAP BW专属提供的是BICS。那么Xelsius的各种连接的优缺点比较以及Xelsius是如何直接连接到BEx Query的呢? 以下Wiki文章应该提供了全面的概览。
http://wiki.sdn.sap.com/wiki/display/BOBJ/Xcelsius+2008+and+SAP+NetWeaver+BW+Co
- oracle表空间相关
tongsh6
oracle
在oracle数据库中,一个用户对应一个表空间,当表空间不足时,可以采用增加表空间的数据文件容量,也可以增加数据文件,方法有如下几种:
1.给表空间增加数据文件
ALTER TABLESPACE "表空间的名字" ADD DATAFILE
'表空间的数据文件路径' SIZE 50M;
&nb
- .Net framework4.0安装失败
yangjuanjava
.netwindows
上午的.net framework 4.0,各种失败,查了好多答案,各种不靠谱,最后终于找到答案了
和Windows Update有关系,给目录名重命名一下再次安装,即安装成功了!
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=17113
方法:
1.运行cmd,输入net stop WuAuServ
2.点击开