» September 23, 2016 CocoaPods
前言
估计这是下个版本间歇起的最后一篇了吧。项目上需要一个图片选择控件,找到一个 swift 项目,花了两天时间转成了 OC 项目,然后想做个 pod 分享给大家。
创建项目
首先需要在 github 上创建新的项目,以当前项目为例:
然后 clone 到本地,进行源码和资源的添加...
» September 20, 2016 设计模式
适配器模式
适配器模式(Adapter):将一个类的接口转换成客户端希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器用于连接两种不同种类的对象,使其毫无问题的协同工作。有时也称作为包装器Wapper。思想很简单,适配器实现客户端所要的某种接口...
» September 19, 2016 设计模式
单例模式
单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式应该是设计模式中最简答的形式了。这一模式的意图是让类的一个对象成为系统中唯一的实例。
类图
使用场景
类只能有一个实例,而且必须从一个为人熟知的访问点对其进行...
» September 18, 2016 设计模式
生成器模式
生成器模式(Builder):将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。
有时,构建某些对象有多种不同方式。如果这些逻辑包含在构建这些对象的类的单一方法中,代码将会充满条件判断。如果能把构建过程分解为客户-指导者-生成器(client-direc...
» September 09, 2016 UIKit
只记录了滑动相关的内容。
UIScrollView关键属性
tracking:用户已经触摸,但是还没有拖拽时返回YES。
dragging:用户开始滑动一小段时间或一小段距离时,返回YES。
decelerating:用户松手,但是还...
» September 09, 2016 Debug
前言
打印了scrollView的代理方法,查看调用顺序,却发现满屏的无关日志。实在忍不了。
关于NSLog
NSLog是这么个东西:
FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2)...
» September 06, 2016 设计模式
工厂模式分为简单工厂模式和抽象工厂模式。
工厂方法是抽象工厂模式的组成部分。
开始之前,我们先看下简单工厂模式,作为warming up。
简单工厂模式
通过工厂类根据参数负责创建具体的产品,即工厂类在工厂方法中通过对参数进行条件判断(if、switch)来创建不同的实...
» September 05, 2016 设计模式
前言
以前作为iOS小团队的负责人,在团队间沟通上要整天面对数不清的扯皮,然后团队内又要作为主程写代码。可谓操着卖白粉的心,赚着卖白菜的钱。最近换了新的工作环境(虽然不是顶尖的团队),终于可以静下心来研究些细节——其实,团队对于工作质量(代码或者架构设计)的高要求也需要我们从更高更深的角度对...
» September 02, 2016 多线程
引入问题
在多个线程同时访问同一个对象的数据时,会有线程安全的问题。比如:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self changePersons];
}...
» September 02, 2016 多线程
GCD
GCD的一个重要概念是队列,它的核心理念:将长期运行的任务拆分成多个工作单元,并将这些单元添加到dispath queue中,系统会为我们管理这些dispath queue,为我们在多个线程上执行工作单元,我们不需要直接启动和管理后台线程。
任务
任务即操作,在GCD中就是一个b...