设计模式-单例

0x01 What?

为了保证一个独一无二的状态,在程序的生命周期内,一个类在内存中只有一个实例,并且提供一个访问它的接口.这是最简单的一种设计模式.

1.0 优缺点

  • 优点:
    1. 使用起来真是方便
    2. 可以保存一个独一无二的状态,并且快速访问
  • 缺点:
    1. 常驻内存,如果单例对象多了,留给其它用途的内存就不多了
    2. 怎么管理单例占用的内是一个问题
Read More

设计模式-责任链

0x01 What?

类似车间流水线的模式,各环节依次处理好自己的事.
工程中常用于拦截器的设计.
有单程链,往返链,

1.0 优缺点

  • 优点:
    1. 每个环节专注做好自己的事
    2. 很容易新增/替换/删除节点,交换节点顺序
  • 缺点:
    1. 一件完整的事务被细分为多个环节,增加了各环节的维护成本
    2. 代码调试不容易,因为可以会出现循环递归调用
Read More

设计模式(开篇)

0x00 What?

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。

设计模式分为三种类型,共23种。

  • 创建型模式::
    • 单例模式
    • 抽象工厂模式
    • 建造者模式
    • 工厂模式
    • 原型模式
  • 结构型模式:`

    • 适配器模式
    • 桥接模式
    • 装饰模式
    • 组合模式
    • 外观模式
    • 享元模式
    • 代理模式
  • 行为型模式:`

    • 模版方法模式
    • 命令模式
    • 迭代器模式
    • 观察者模式
    • 中介者模式
    • 备忘录模式
    • 解释器模式(Interpreter模式)
    • 状态模式
    • 策略模式
    • 职责链模式(责任链模式)
    • 访问者模式

关于这些设计模式在OC下的实现,代码在 Github,每个模式都有对应的单元测试,仅供参考,如果写不的好,轻一点喷~

Read More

走近静态库(异常错误处理)

0x00 进击的.a/.framework

那一天,人們回想起了
在它们支配下的恐懼…
以及被它们蹂躏屈辱……

Read More

走近静态库(资源)

0x01 bundle

bundle实质是其实就是一个有后缀(.bundle)的文件夹

在制作framework或者.a时,由于一些资源文件(图片,音频,storyboard,xib,xcassets,plist…等等)并不能直接编译到可执行文件中,这时就需要我们提供一个容器来管理这些资源文件,这就是我们今天要说的bundle

Read More

走近静态库(概述)

0x00 What?

库是共享代码的方式,通俗的讲就是把一个或者多个功能的实现相关代码打包成一个可供其它人直接使用的package.从本质上来讲库是一种可执行代码片段的二进制格式,可以被加载到内存中直接使用.

iOS中的库分为静态库和动态库.

  • 静态库有.a(库的api头文件和.a可执行文件组成)和.framework(其实就是把可执行文件和.头文件都包含在里一个*.framework文件夹里)两种形式,实际应用中大多数第三库都以.a的形式提供.
  • 动态库有.dylib和.framework形式,后来苹果又使用.tbd形式取代了.dylib.
Read More

AppDelegate代码组织

0x00 AppDelegate为什么变成了垃圾堆?

  当应用越做越大,功能越来越多,接入的第三方库越来越多,当开发人员越来越多的时候,AppDelegate就会变的越来越胖。

Read More

SwiftConChina2016参会感

0x00 序

时间:2016.04.23 - 2016.04.24

地址:上海华纳风格酒店

天气: 中雨

人物: 一群iOS程序猿和业界大牛(唐巧, 图拉鼎,Tinyfool-郝培强…),还有一个屌丝的我

事件: 在Tink社区组织的SwiftConChina2016的交流分享大会上,由于Tinyfool老师的分享没有带来一些技术干货,而是讲了一些心历路程,从而引起一部喷子开喷,导致现场的气氛一直很怪异~

由于出现了这样的事件,再加上这两天连续不段的阴雨天和车途劳顿,导致参加完会议感觉身心疲惫。

Read More

Hello World🌴

没有什么比说一句Hello World更让人激动~
如果有那就两句