iOS中Zbar实现高效、快速条形码扫描 发表于 2020-03-31 | 分类于 iOS 背景条形码、二维码是日常生活中用的较多的功能,我们在开发中之前用的都是ZXing、Zbar这两个开源库。不过在iOS7之后,苹果系统自己实现了一套api,终于可以丢弃第三方,用上苹果爸爸自己的功能了。 首先说说ZXing、Zbar这两个开源库。由于ZXing是用java实现的,Zbar是用C语音实现 ... 阅读全文 »
iOS中如何用OCR高效识别手机号 发表于 2019-07-25 | 分类于 iOS 背景最近项目中有个需求,就是让识别手机号。其实按照产品的思路就是外购,而且确实已经开始采购。由于采购过程其实也是漫长的,于是乎本人就准备自己研究一下实现手机号识别。 如果用一些第三方的话,比如百度OCR识别是有限制的,而且就是集成SDK而已,没什么可研究的。最终经过寻寻觅觅,找到了我们今天的主角–T ... 阅读全文 »
iOS中UIViewController完美瘦身 发表于 2019-05-29 | 分类于 iOS 对于UIViewController瘦身是一个老生常谈的问题,现在也有比较多的架构来实现此效果,比如MVVM等等。不过这次我们是对于传统的MVC架构设计实现完美的瘦身。此方法也完全不妨碍在此基础上使用MVVM等其他方法瘦身。 情景首先让我们看一下我们要做的界面效果 看着界面不是很难,最上边是二维码扫 ... 阅读全文 »
杂记 发表于 2019-04-24 | 分类于 生活 距离上次写文章已经好几个月了,这几个月除了工作就是学习,今年过完年之后就给自己暂时规划了两个目标:驾照和考证。 这两项也是弄得我筋疲力尽,尤其是驾照。现在上海的驾照考试比以前难多了,以前是科目二考过之后就等着拿驾照就行了,现在科目三考试的挂科率都超过了科目二。我过年之后就报了一个手动挡驾照培训班,由 ... 阅读全文 »
设计模式之感悟和实践(二) 发表于 2019-01-08 | 分类于 设计模式 前一篇《设计模式之感悟和实践(一)》介绍了如何去掉if...else和switch...case的应用场景,这篇文章我们将介绍另外一种场景的综合运用 如果没有看前一篇文章的,建议首先看一下。 具体使用场景回忆前一篇文章我们是使用责任链设计模式教大家消除判断语句,具体如下格式: 123456789// ... 阅读全文 »
iOS动态添加属性 发表于 2019-01-02 | 分类于 iOS 背景之前一篇文章《iOS关联对象》详细介绍了如何通过关联对象添加属性,本篇文章将介绍如何通过runtime的class_addProperty或class_addIvar动态添加属性,并且带领大家看看这两个方法底层是如何实现的。 class_addProperty添加属性对于已经存在的类我们用cla ... 阅读全文 »
iOS关联对象 发表于 2018-12-28 | 分类于 iOS 背景在iOS开发中如果我们想给一个对象动态添加属性或者给category添加属性的时候,都是通过runtime的关联对象去实现,那我们添加的属性到底是如何存取的呢?是直接添加到了对象自身的内存中了去吗?带着这些疑问让我们看一runtime的源码,解开关联对象的神秘面纱。 关联对象源码存值123voi ... 阅读全文 »
设计模式之感悟和实践(一) 发表于 2018-12-14 | 分类于 设计模式 背景设计模式可以说是老生常谈的一个知识点。工作这么多年来也是陆陆续续看过几本书。比如《大话设计模式》、《Head First 设计模式》,这两本书是前期接触比较多,而且质量还是不错的两本书,不过之前看的感觉有点像猪八戒吃人参果——食而不知其味。 很多时候有的人在写代码的过程中对设计模式并不为然。像本 ... 阅读全文 »
散列 发表于 2018-11-21 | 分类于 数据结构和算法 背景散列其实我们在开发的过程中经常遇到,比如iOS中NSDictionary其内部就是通过散列中分离链表来实现的。当我们自定义一个类的时候,实现-(BOOL)isEqual:方法的时候,同时也要实现- (unsigned int)hash方法,这些都是基于散列所要求的。 散列散列表的实现叫作散列 散 ... 阅读全文 »
常见数据结构 发表于 2018-11-09 | 分类于 数据结构和算法 背景数据结构是我们开发过程中最常用到的基本知识,比如表,方法调用栈等等。熟练的掌握基本的数据结构,有助于提升我们对数据的增删查的效率。我在这里简单总结了我们常见的数据结构知识,包括表、栈、队列和二叉树。 表表的有两种常见的实现方式:数组和链表 结构 优点 缺点 数组实现 get和set ... 阅读全文 »