- 对头文件的引用import和include区别
- import头文件会去重,最多包含一次
- include会重复包含
- 解释一下ARC
- auto reference count(自动引用计数)
- 不用手动管理对象的引用计数
- (深入)编译的时候插入引用计数的管理代码
- (深入)不是GC
- 解释一下block,什么时候使用block
- block是oc中的闭包,闭包你懂的。。。
- gcd(OC中常用的多任务解决方案)的语法中常用block来实现
- (深入问题)?block会在堆上创建,还是栈上创建,或者其它地方
- 目前的oc基本上都在堆上创建,除了全局的block和不捕获其它变量的block会在静态代码区
- 写一个block声明,接收1个布尔参数,返回一个字符串
- NSString *(^aBlock)(BOOL b)
- 形参的名字可以省略不写
- frame和bounds有什么不同?
- frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父视图的坐标系统)
- bounds指的是:该view在本身坐标系统中 的位置和大小。(参照点是本身坐标系统),一般bounds的原点是(0,0)
- iOS异步操作(多线程)一般都有哪些方式
- gcd(首选)
- NSOperation和NSOperation(可以设置并发数和依赖关系)
- NSThread
- posix thread(即pthread)
- viewDidLoad和loadView什么时候被调用(稍难)
- 先执行loadView,后执行viewDidLoad
- loadView负责创建View
- 界面是Interface Builder(IB)或者StoryBoard创建的时候,loadView不能被重写
- 这两个函数都不能手动调用
- OC的Category(分类)有什么作用
- 可以给已有的类(比如系统的类)增加新的方法和实现
- 不能增加属性
- NS和CF分别是什么含义
- NS是NextStep的缩写,在iOS中以NS开头的类表示这个类属于Cocoa
- CF是CoreFoundation的缩写,是一个C库,里面是以CF开头的函数和结构体
- strong和weak的区别(和前面的ARC有关)
- weak定义的变量不持有具体的对象,不对引用计数加一,当对象被销毁的时候,weak定义的变量会自动变成nil(空值)
- strong持有对象
- 解释一下什么事retain cycle(循环引用计数)
- 对象相互持有,或者多个对象循环持有,相互依赖,引用计数无法清空
- 会导致内存泄露
- 应该设置部分变量为weak来解除循环引用
- dealloc的作用和实现
- dealloc是类的析构函数,会在对象引用计数变0的时候自动调用
- dealloc一般会释放申请的资源,定时器,注销注册的消息等等
iOS基础面试题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...