大兵布莱恩特

专注iOS开发喜欢 C/C++ 开发语言

iOS 数据结构之单向链表

链表 ,数组 是我们经常碰到的线性数据结构, 是一种真正的动态数据结构 ,而数组是一段连续的内存空间,通过指针偏移去取数组里相邻的数据,而链表是将不同的内存空间,连在在一起,类似于我们生活中常见的火车车厢,每节车厢就可以看做是一个数据,只不过这个数据内部还有个指针指向它下一个节点的数据. 因...

2018-08-07 17:48:18

阅读数:26

评论数:0

iOS 数据结构之数组

iOS 开发中经常使用到的数组为 NSArray 和 NSMutableArray ,这是 Foundation 给我们提供的数据结构.平时开发中使用 NSArray 和 NSMutableArray 是可以满足开发需要的.抱着学习的态度 小编对于数组这种数据结构的底层实现饶有兴趣,因此自己实现...

2018-08-07 17:43:55

阅读数:42

评论数:0

iOS 数据结构之队列

队列是iOS 中常见的一种数据结构,比如 NSOpeartionQueue 和 GCD 的 各种队列 ,其特点是先进先出(First In First out), 在多线程执行执行多个任务时候 ,放进同一队列的任务是顺次从队列里取出任务并执行的. gith 代码仓库 : https://gith...

2018-08-07 17:43:21

阅读数:78

评论数:0

iOS使用GCD实现一个Timer

由于 NSTimer 要加到 runloop 中才能工作,这样的话 runloop 在跑圈的时候,如果遇到了当前线程任务比较繁忙,那么它处理 NSTimer 的时机就会滞后,导致 NSTimer 不够准时.因为我们可以用 GCD 的 dispatch_soure_t 去实现一个自己的定时器,而且...

2018-07-11 17:21:05

阅读数:70

评论数:0

iOS窥探KVO底层实现实战篇

上文讲到 iOS KVO 底层实现原理https://www.jianshu.com/p/0aa83ac521ba,大概就是runtime时候动态的创建一个子类,并重写了子类的 setter dealloc class 等方法,将当前类的 isa 指针指向这个子类,这样就不会影响原有类的实现 ...

2018-07-09 13:38:38

阅读数:29

评论数:0

iOS窥探KVO底层原理

最近小编公司招聘 iOS, 于是小编从网上找了几道面试题,来考察候选人iOS 开发方面的技术水平,其中有一道面试题便是 KVO 底层实现是什么? 如何手动出发 KVO? 修改成员变量的值会出发 KVO 吗? KVC 赋值会出发 KVO 吗? 当你了解 KVO 实现原理后,这几道面...

2018-07-07 17:19:44

阅读数:88

评论数:0

iOS[super class]和[self class]

最近小编所在公司招 iOS 开发职位,小编也出了几道面试题考察下候选人的 iOS 开发水平,其中有一道题如下: @implementation Student : Person - (instancetype)init { self = [super init]; if (...

2018-07-07 09:59:39

阅读数:245

评论数:0

iOS关联对象技术底层原理

iOS 通过 runtime 的 API 可以给分类添加属性,关联属性总共有下边3个 API ///获取某个对象的关联属性 id objc_getAssociatedObject(id object, const void *key) { return _object_get_ass...

2018-06-21 09:38:13

阅读数:100

评论数:0

iOS设计模式之Strategy(策略模式)

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 有点类似于我们玩是 CS 枪战,不管你用 1 机枪 2 手枪 3小刀 4 手雷 ,到角色身上的永远是一个字干,点击鼠标左键,老夫写代码上去就是一梭子,不管你怎么实现...

2018-06-14 20:44:45

阅读数:51

评论数:0

iOS设计模式之观察者模式

iOS 常见的观察者模式主要有通知和 KVO 这两种,通知可以实现一对多的关系, KVO 可以观察属性值的变化.虽然小编开发中经常用到观察者模式这种设计模式,但总觉得理解不是很深入 . 通知模式 KVO 监听 下边会用一个例子详细的阐述观察者这种设计模式具体使用场景 这是一...

2018-06-13 21:02:52

阅读数:119

评论数:0

iOS设计模式之单例模式

iOS 开发中单例随处可见,从开发者接触最多的 UIApplication 到 NSNotificationCenter, 再到 NSFileManager 单例模式的应用十分广泛,小便开发 iOS至今也经常用到单例这种设计模式,今天看 java 同事讲到懒汉式单例,感觉有点新颖(小编半路出家搞 ...

2018-06-13 19:50:02

阅读数:38

评论数:0

组件化开发之07 中间件的设计

原则上来说每个业务组件之间联系很少 ,比如消息模块 跟拼车 个人中心 不搭噶,拼车模块 只有一个 看图猜猜组件入口 ,一个心雨心愿组件入口,为了减少组件之间的依赖关系 ,就需要有个中间件去处理两个组件之间信息传递的问题. YVMediatorLib 是利用 Targe-Action runtim...

2018-06-12 16:06:25

阅读数:93

评论数:0

组件化开发之06 拼车组件是如何形成的

一个业务组件在 APP 中可能是一个业务模块,但它同时又是一个工程可以单独的调试和编译 只要给这个组件相应的依赖组件 它就能运行起来 比如给拼车组件一个 登录注册组件 它就能完成登录注册,给它一个个人中心组件 ,它就能打开个人中心 笔者建议 当你没有时间做组件时候 一定要将某个模块用...

2018-06-12 16:06:01

阅读数:64

评论数:0

组件化开发之05 静态库转动态库

我们常见的友盟 微信支付 百度地图 高德地图 由于历史原因 可能要兼容 iOS7之前版本,目前这些公司提供的 SDK 都只支持静态库,笔者也咨询了融云客服希望他们能够提供下融云 IM 动态库的 framework, 但是融云客服并没有提供,只是说让笔者自己将静态库打包成动态库使用. 其实静态库打...

2018-06-12 16:05:38

阅读数:78

评论数:0

组件化开发之04 如何将一些静态库打包成动态库

笔者打造出来了5个基础组件,满怀信心准备大干一场时候,发现业务组件用到支付宝 , 微信支付 SDK ,微博 SDK ,高德地图 SDK 等静态库. a ,.framework 文件时候,链接到组件时候报错误,而且还不容易解决,因为我整个工程都是 use_frameworks! ,将来 cocoap...

2018-06-12 16:05:16

阅读数:212

评论数:2

组件化开发之03 打造一喂航母战斗群

从 Boss 说要打造航空母舰开始 我就想到了用组件化去实现,一条航母(一喂主 APP), 多条护卫舰 顺风车 拼车网 长途汽车票 ,是如何利用多个 APP 给主 APP 引流的. 在刚到一喂智能科技时候,只有一个一喂直达 App, 里边有配送 跑腿 长途急件 爱心店铺 服务店铺等模块,刚开始笔...

2018-06-12 16:04:52

阅读数:50

评论数:0

组件化开发之03 一喂 App 架构演变

从 Boss 说要打造航空母舰开始 我就想到了用组件化去实现,一条航母一喂主 APP, 多条护卫舰 顺风车 拼车网 长途汽车票 ,是如何利用多个 APP 给主 APP 引流的. 在刚到一喂智能科技时候,只有一个一喂直达 App, 里边有配送 跑腿 长途急件 爱心店铺 服务店铺等模块,刚开始笔者并...

2018-06-12 14:52:34

阅读数:73

评论数:0

组件化开发之02 cocoapods 远程私有库

上一讲我们讲到了如何创建本地私有仓库,关于远程私有库就是我们按照 cocoapods 的一些规范创建一个自己的私有索引文件库和一个自己的私有库代码仓库,私有索引库存放我们私有库的podspec索引文件,后边更改了私有库版本内容,就将私有库的podsepc文件提交到这个私有索引库仓库里. 接下来我...

2018-06-12 12:03:20

阅读数:95

评论数:0

数据结构之栈-> Swift版本

iOS 开发中用到的 UINavigationController 其实就是一个栈结构,可以存放多个子控制器,栈顶控制器为当前显示的控制器,栈底控制器为 rootViewController ,当 push 操作时会将一个新的 UIViewController 存放到栈中去, pop 操作时会将栈...

2018-06-09 20:46:43

阅读数:44

评论数:0

数据结构之环形队列-> Swift 版本

iOS 中的 NSOperationQueue 就是一种队列结构,遵循 FIFO 的原则,将 NSOperation 任务添加到队列中去,并挨个取出执行任务. Github代码地址 : https://github.com/ZhaoBingDong/DataStructure.git 今天用 ...

2018-06-09 20:45:22

阅读数:39

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭