background image
北风网 iOS 面试题库(四) 
 
写在前面:“分享”看似在输出,但实际上是获得更多。用我们北风网的口号就是“不懂得
分享的人,不会很快乐;不懂得分享的机构,不是好机构”。所以,我们北风网不定期会给
大家分享一些干货,所有的内容仅供学习之用,也希望大家能将“分享的精神”传递下去。 
 
一、  CGD 的底层实现 
(1)iOS 和 OS X 的核心是 XNU 内核, GCD 是基于 XUN 内核实现的 
(2)GCD 的 API 全部在 libdispatch 库中 
(3)GCD 的底层实现主要有 Dispatch Queue  和 Dispatch Source 
(4)Dispatch Queue——管理 block 操作 
(5)Dispatch Source——处理事件 
 
二、Notification 是同步还是异步?  Kvo  是同步还是异步? 
包括代理,这些都是同步的;监听和回调都是在同一个线程中执行。 
 
三、  Objective C 中的 selector 是什么? 
可以理解  @selector()  就是取类方法的编号,他的行为基本可以等同 C 语言中的函数
指针,只不过C 语言中,可以把函数名之间赋给一个函数指针,而Objective-C 的类不能之间应
用函数指针,这样只能做一个  @selector 语法来取。 
它的结果是一个 SEL 类型,这个类型的本质是累方法的编号(函数地址).方法以 selector 为索
引.selector 的数据类型是 SEL 定义成 char*,我们可以把它想象成 int  .每个方法的名字对应