- iOS序列化的进阶方案——Protocol Buffer
落影loyinglin
前言最近项目需要,引入ProtocolBuffer来做对象序列化。正文ProtocolBuffer是Google出的序列化数据格式,下面简称pb。我们更常用的序列化数据格式应该是json,json和pb本质上都是对象的序列化和反序列化,在项目中json也是前后端通信的主要数据格式。在本地存储时,我们可以使用YYModel将对象转成json对应的NSData,也可以使用NSKeyedArchiver
- YYModel
00after
原文史上最全YYModel的使用详解一篇文章全吃透—史上最全YYModel的使用详解Json转模型(nullableinstancetype)yy_modelWithJSON:(id)json;更新model,只更新json中有的数据使用JSON对象设置接收器的属性。@discussion将忽略json中的任何无效数据(BOOL)yy_modelSetWithJSON:(id)json;开篇说明:
- ESJsonFormat 更新 Xcode10的兼容 以及 swift4兼容
piupiu啊piupiu
ESJsonFormatformac一个很好用的应用,自动根据json数据导出对应的数据模型文件支持Swift、OC、YYModel、MJExtension但原作者很久没有进行维护了,在Xcode10上有泛型不支持、swift文件格式不正确等问题,本人闲暇之余试着维护了一下本人维护地址github地址,安装文件在ESJsonFormatForMac->Application->ESJson_DMG
- 2021-01-01T00:00:00.000+0000 转换 NSDate
简书花花
服务端返回时间类型:2021-01-01T00:00:00.000+0000转换NSDate用YYModel转,接收类型设置为NSDate即可。举例@property(nonatomic,strong)NSDate*birthday;image.png
- 美摄SDK调试
马维启
workspace'VideoEditor.xcworkspace'target'VideoEditor'dopod'YYModel'pod'YYWebImage'pod'YYImage/WebP'endtarget'NvShortVideoCore'doPodsforNvShortVideoproject'NvShortVideoCore/NvShortVideoCore.xcodeproj'p
- iOS反向编译出model类所有属性并赋值
isaaczcbj
目前开发中,面对大量的返回参数,几乎都是用YYModel来处理model类,但是有时难免要对model类的属性进行特殊处理,这里提供了一种通过运行时来处理model属性的方法:#import"TR_Model.h"#import@interfaceTR_Model(Extension)-(void)displayCurrentModleProperty;@end具体逻辑处理如下所示:#import
- IOS 内联函数Q&A
我是繁星
Q:YYModel中有一个宏#defineforce_inline__inline____attribute__((always_inline))并且大量函数都是以内联的形式存在的,那么内联函数有什么用,并且为什么要这样写呢?A:高级语言都是经过编译器编译成c或汇编语言的,inline__inline____attribute__((always_inline))其实是一条编译器指令,编译器会将函
- dyld: Library not loaded: @rpath/YYModel.framework/
Gavin_盖文
导入库编译没问题,运行报了错报错日志报错日志截图解决方案解决步骤截图不清晰的可以留言,有错误也欢迎指出。
- YYModel 2019-06-24
雪里的懒猪
前言同项目中同事使用YYModel,比原生的要简单高效许多!!!YYModel是YYKit的高效组件之一,在实际场景中的非常实用,运用于项目中使用MVC或MVVM架构时,使用model做数据处理。自动转换模型数据自动检测数据安全性,避免carch无需继承其他类,使用方便适用model各种数据加载运用场景在使用之前先展示一些YYModel比较常用的方法,后面会具体介绍用法//字典转模型(nullab
- iOS项目中Json转Model的坑
抢手的哥
Json转Modeljson转model,是个开发都会遇到过。都已经9102年了,谁还不会用个第三方框架搞。拿起键盘就是干!就是干.png打开podfile,把大名顶顶的YYModel写上,podinstall一下。再用上ESJsonFormat,直接根据json,都能把model生成好。特殊处理啥?返回的字段值不是我们所需的在日常开发中,经常会遇到一些接口字段返回的值,并不是我所需要的类型的情况
- 转:YYModel 的使用场景和详解
小小小Lucky
YYModel的使用场景和详解凉秋落尘关注2.32018.07.1716:09*字数1054阅读12818评论5喜欢32前言YYModel是YYKit的高效组件之一,在实际场景中的非常实用,运用于项目中使用MVC或MVVM架构时,使用model做数据处理。自动转换模型数据自动检测数据安全性,避免carch无需继承其他类,使用方便适用model各种数据加载运用场景在使用之前先展示一些YYModel比
- iOS源码阅读 —— YYModel
GG266
YYModel作为一个iOS/OSX模型转换框架,为JSON与数据模型之间的转换,提供了高性能的解决方案。在我个人的日常开发中,主要使用的方法有以下几个://JSON|字典转模型+(nullableinstancetype)yy_modelWithJSON:(id)json;+(nullableinstancetype)yy_modelWithDictionary:(NSDictionary*)d
- 走进 YYModel
水落斜阳
YYModel使用如果有这样一组json数据:{"number":"13612345678","name":"Germany","age":49}那我们会去建立相应的Object对象@interfaceTestObject:NSObject@property(nonatomic,copy)NSString*name;@property(nonatomic,copy)NSString*number;
- YYModel源码浅析
好有魔力
YYModel提供高性能的数据与model互相转换的方法,并且提供了数据类型的适配和支持自定义属性名和键的映射,使用起来非常方便.YYModel提供的接口YYModel的接口以分类的形式提供:NSObject分类@interfaceNSObject(YYModel)//使用json数据创建对象,json的类型可以使NSDictionary,NSData,NSString+(nullableinst
- CDN: trunk Repo update failed - 18 error(s)
君子独善其身
具体错误:CDN:trunkRepoupdatefailed-18error(s):CDN:trunkURLcouldn'tbedownloaded:https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/2/7/4/YYModel/0.9.0/YYModel.podspec.json,error:FailedtoopenTCP
- YYModel
6灰太狼9
一、用法YYModel跟MJExtension作用相似。也提供了一下数据的相互转换array,dictionarymodelarray,modeljsonStrjson(data)1.转成model,modelarray+(instancetype)yy_modelWithJSON:(id)json;+(instancetype)yy_modelWithDictionary:(NSDictiona
- KVC 流程分析 自定义及异常处理
蒲公英守候_c082
今天学习一下KVC深层次的东西喜欢的可以进来看看,也许有你中意的哦~1.成员变量&实例变量&属性2.KVC初探3.KVC赋值4.KVC取值5.KVC的异常处理6.KVC的进阶用法7.YYModel原理分析8.category源码分析1.成员变量&实例变量&属性的区别是什么//实例变量是一种特殊的成员变量//class类实例出来的变量就是实例变量Btn就是@interfaceLGPerson:NSO
- 通用podfile配置
法小克丶
一般创建项目都需要用到的podfile第三方platform:ios,'11.0'#platform:ios,'10.0'#忽略pod警告inhibit_all_warnings!target'Project'douse_frameworks!pod'AFNetworking'#网络请求pod'YYModel'#YYModelpod'YYWebImage'#YYWebImagepod'MJRefr
- 补充YYModel无法直接关联CoreData的缺点
Ginhoor
好久没写博文了,18年真是忙碌的一年,一眨眼居然就19年了,居然空了一年没写,今年先开个好头吧,整理一下去年的积累。JSON转Model是一个很长常见,又非常繁琐的技术方案,好在现在有很多第三方库支援,让我们不用重复造轮子。博主一直都喜欢用Mantle框架,无奈Mantle框架的model定义过于繁琐,尤其是类型转换。于是就转投了YYModel的怀抱,在此感谢下YYModel的作者(https:/
- iOS比较好用的第三方框架
文艺情怀的程序猿
简介·Model·数据库·缓存处理·图像浏览及处理·UI·下拉刷新·AutoLayout·富文本·HUD与Toast·其他UI·网络相关·网络连接·图像获取·网络测试·其他库详情1.Model①MJExtension-用于json转model,转换效率高,使用简单,只需前后台约定好格式,json可以直接转成model。(个人比较推荐)②YYModel-高性能的iOSJSON模型框架,YY出的众多框
- YYModel解析
哲逗年
一、_YYModelMeta组成(YYClassInfo、_YYModelPropertyMeta)YYClassInfo*_classInfo;///Key:mappedkeyandkeypath,Value:_YYModelPropertyMeta.NSDictionary*_mapper;///Array,allpropertymetaofthismodel.NSArray*_allProp
- JSON模型转换与YYModel
楚丶liu香
作为App端开发,iOS和Android都不可避免要将服务器返回的数据转换为Model以便使用,而服务器返回的数据中又以JSON格式为最为常见。从最初的手动转换到各种JSON模型转换第三方库的出现和使用,我们既节省了大量时间,又提高了工作效率。先来看下常用的有哪几种,Mantle,JSONModel,YYModel等等,我们先来看下三者的使用方法、转换性能和各自的特点。常用JSON模型转换库评测J
- iOS有名第三方库源码解析(收集集合)
Dxc_iOS
收集一些源码解析,供日后研读:1.iOS开发之Masonry框架源码解析2.MJRefresh源码解析3.YYModel源码剖析4.揭秘YYModel的魔法5.YYCache源码剖析6.YYImage源码剖析7.YYImage设计思路,实现细节剖析8.YYWebImage源码剖析9.YYAsyncLayer源码剖析深入解读SDWebImage系列:深入解读SDWebImage(一)深入理解SDWe
- 转:YYModel源码详细解析-1
小小小Lucky
YYModel源码详细解析-1js丶关注2016.06.1801:59*字数3167阅读3800评论12喜欢37前言:阅读YYModel之前建议先阅读Runtime基础篇,YYModel采用Runtime直接调用Getter/Setter,是一款高性能iOS/OSX模型转换框架,支持定义映射过程。正好最近想深入Runtime一番,于是就读了几遍YYModel的源码,本文将从作者提供的性能优化的几个
- YYModel
布偶猫真好看
////ViewController.m//07_08////CreatedbySongon2020/7/8.//Copyright©2020Song.Allrightsreserved.//#import"ViewController.h"#import#import"YYPersonModel.h"@interfaceViewController()@property(nonatomic,st
- YYModel中优化JSON与Model转化的Tips
程序狗
1.缓存转换过程中需要很多类的元数据,如果数据足够小,则全部缓存到内存中。2.查表当遇到多项选择的条件时,要尽量使用查表法实现,比如switch/case,CArray,如果查表条件时对象,则可以用NSDictionary来实现3.避免KVCKey-ValueCoding使用起来非常方便,但性能上要差于直接调用Getter/Setter,所以能避免KVC而用Getter/Setter代替,性能会有
- iOS源码阅读 —— YYModel vs MJExtension
GG266
YYModel和MJExtension作为JSON模型转换工具,应该算是国内使用者比较多的第三方框架。相信两款都用过的开发者大有人在,我也是其中之一。既然如此,笔者便相继阅读了这两个库的主要源码,并参考YYModel作者ibireme的《iOSJSON模型转换库评测》一文进行了的评测和展开。本文仅代表个人观点,如有异议,欢迎交流指导。评测对象pod'YYModel','~>1.0.4'pod'MJ
- 使用过哪些第三方?
求长生
1.iOS降低线上版本Crash率,IOS防止Crash组件WTSafeGuard。https://www.aliyun.com/jiaocheng/351700.html?spm=5176.100033.2.8.1aKPQW2.SocketRocket3.YYModel4.AFNetworking5.Toast次要6.MBProgressHUD7.YTKKeyValueStore数据库https
- iOS yymodel构造分析
恋空K
先看下类对应的结构描述:structobjc_class{ClassisaOBJC_ISA_AVAILABILITY;、#if!__OBJC2__Classsuper_classOBJC2_UNAVAILABLE;//父类constchar*nameOBJC2_UNAVAILABLE;//类名longversionOBJC2_UNAVAILABLE;//类的版本信息,默认为0longinfoOBJ
- iOS正向 - 超诡异!一个Dictionary出现两个同样的key?
Metros
没错,你使用了setObjectForKey,而且key还是对象,比如NSNumber,打印出来的dic内容就是两个key,而且用类似YYModel的工具,转出的json,诡异的只有一个key!!!!用setValueForkey,这样会判定key的类型,然后有警告的话,就查查到底key是不是String类型,转成String类型继续。
- java线程Thread和Runnable区别和联系
zx_code
javajvmthread多线程Runnable
我们都晓得java实现线程2种方式,一个是继承Thread,另一个是实现Runnable。
模拟窗口买票,第一例子继承thread,代码如下
package thread;
public class ThreadTest {
public static void main(String[] args) {
Thread1 t1 = new Thread1(
- 【转】JSON与XML的区别比较
丁_新
jsonxml
1.定义介绍
(1).XML定义
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标
- c++ 实现五种基础的排序算法
CrazyMizzz
C++c算法
#include<iostream>
using namespace std;
//辅助函数,交换两数之值
template<class T>
void mySwap(T &x, T &y){
T temp = x;
x = y;
y = temp;
}
const int size = 10;
//一、用直接插入排
- 我的软件
麦田的设计者
我的软件音乐类娱乐放松
这是我写的一款app软件,耗时三个月,是一个根据央视节目开门大吉改变的,提供音调,猜歌曲名。1、手机拥有者在android手机市场下载本APP,同意权限,安装到手机上。2、游客初次进入时会有引导页面提醒用户注册。(同时软件自动播放背景音乐)。3、用户登录到主页后,会有五个模块。a、点击不胫而走,用户得到开门大吉首页部分新闻,点击进入有新闻详情。b、
- linux awk命令详解
被触发
linux awk
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=val
- 各种语言比较
_wy_
编程语言
Java Ruby PHP 擅长领域
- oracle 中数据类型为clob的编辑
知了ing
oracle clob
public void updateKpiStatus(String kpiStatus,String taskId){
Connection dbc=null;
Statement stmt=null;
PreparedStatement ps=null;
try {
dbc = new DBConn().getNewConnection();
//stmt = db
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
矮蛋蛋
zookeeper
原文地址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
安装和配置详解
本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两
- tomcat数据源
alafqq
tomcat
数据库
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。
没有使用JNDI时我用要这样连接数据库:
03. Class.forName("com.mysql.jdbc.Driver");
04. conn
- 遍历的方法
百合不是茶
遍历
遍历
在java的泛
- linux查看硬件信息的命令
bijian1013
linux
linux查看硬件信息的命令
一.查看CPU:
cat /proc/cpuinfo
二.查看内存:
free
三.查看硬盘:
df
linux下查看硬件信息
1、lspci 列出所有PCI 设备;
lspci - list all PCI devices:列出机器中的PCI设备(声卡、显卡、Modem、网卡、USB、主板集成设备也能
- java常见的ClassNotFoundException
bijian1013
java
1.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2.java.lang.ClassNotFoundException: javax.transaction.Synchronization
- 【Gson五】日期对象的序列化和反序列化
bit1129
反序列化
对日期类型的数据进行序列化和反序列化时,需要考虑如下问题:
1. 序列化时,Date对象序列化的字符串日期格式如何
2. 反序列化时,把日期字符串序列化为Date对象,也需要考虑日期格式问题
3. Date A -> str -> Date B,A和B对象是否equals
默认序列化和反序列化
import com
- 【Spark八十六】Spark Streaming之DStream vs. InputDStream
bit1129
Stream
1. DStream的类说明文档:
/**
* A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous
* sequence of RDDs (of the same type) representing a continuous st
- 通过nginx获取header信息
ronin47
nginx header
1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面,
if ( $http_cookie ~* "(.*)$") {
set $all_cookie $1;
}
变量$all_cookie就获得了cookie的值,可以用于运算了
- java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
bylijinnan
java
参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984
写了个java版的:
public class Print_1_To_NDigit {
/**
* Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
* 1.使用字符串
- Netty源码学习-ReplayingDecoder
bylijinnan
javanetty
ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看
http://bylijinnan.iteye.com/blog/1982618
API说,ReplayingDecoder简化了操作,比如:
FrameDecoder在decode时,需要判断数据是否接收完全:
public class IntegerH
- js特殊字符过滤
cngolon
js特殊字符js特殊字符过滤
1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号function stripscript(s) { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
- hibernate使用sql查询
ctrain
Hibernate
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transa
- linux shell脚本中切换用户执行命令方法
daizj
linuxshell命令切换用户
经常在写shell脚本时,会碰到要以另外一个用户来执行相关命令,其方法简单记下:
1、执行单个命令:su - user -c "command"
如:下面命令是以test用户在/data目录下创建test123目录
[root@slave19 /data]# su - test -c "mkdir /data/test123" 
- 好的代码里只要一个 return 语句
dcj3sjt126com
return
别再这样写了:public boolean foo() { if (true) { return true; } else { return false;
- Android动画效果学习
dcj3sjt126com
android
1、透明动画效果
方法一:代码实现
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container, fals
- linux复习笔记之bash shell (4)管道命令
eksliang
linux管道命令汇总linux管道命令linux常用管道命令
转载请出自出处:
http://eksliang.iteye.com/blog/2105461
bash命令执行的完毕以后,通常这个命令都会有返回结果,怎么对这个返回的结果做一些操作呢?那就得用管道命令‘|’。
上面那段话,简单说了下管道命令的作用,那什么事管道命令呢?
答:非常的经典的一句话,记住了,何为管
- Android系统中自定义按键的短按、双击、长按事件
gqdy365
android
在项目中碰到这样的问题:
由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成:
1、单击事件:就是普通key的单击;
2、双击事件:500ms内同一按键单击两次;
3、长按事件:同一按键长按超过1000ms(系统中长按事件为500ms);
4、组合按键:两个以上按键同时按住;
- asp.net获取站点根目录下子目录的名称
hvt
.netC#asp.nethovertreeWeb Forms
使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下:
<asp:ListBox runat="server" ID="lbKeleyiFolder" />
那么在页面上显示根目录子文件夹的代码如下:
string[] m_sub
- Eclipse程序员要掌握的常用快捷键
justjavac
javaeclipse快捷键ide
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 写道 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可
- c++编程随记
lx.asymmetric
C++笔记
为了字体更好看,改变了格式……
&&运算符:
#include<iostream>
using namespace std;
int main(){
int a=-1,b=4,k;
k=(++a<0)&&!(b--
- linux标准IO缓冲机制研究
音频数据
linux
一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,
- 随想 生活
暗黑小菠萝
生活
其实账户之前就申请了,但是决定要自己更新一些东西看也是最近。从毕业到现在已经一年了。没有进步是假的,但是有多大的进步可能只有我自己知道。
毕业的时候班里12个女生,真正最后做到软件开发的只要两个包括我,PS:我不是说测试不好。当时因为考研完全放弃找工作,考研失败,我想这只是我的借口。那个时候才想到为什么大学的时候不能好好的学习技术,增强自己的实战能力,以至于后来找工作比较费劲。我
- 我认为POJO是一个错误的概念
windshome
javaPOJO编程J2EE设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&