美文网首页面试专用
iOS基础面试题

iOS基础面试题

作者: 肆_春分 | 来源:发表于2015-09-15 01:08 被阅读163次
  • 对头文件的引用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基础面试题

    本文链接:https://www.haomeiwen.com/subject/hxhmcttx.html