高级iOS面试题

高级iOS面试题_第1张图片

非标准答案

2

1: 类方法是可以直接通过类名直接调用,无需进行实例化对象。类方法是以+开头
2. 实例方法,需要显示实例化对象,为对象分配堆栈空间,并通过对象实例调用实例方法
3. RUNTIME 是在程序运行过程动态对实例对象进行操作,可以读取实例对象的属性,调用实例方法,也可以动态为实例对象添加属性。 即Java 中的反射。在对数据库操作常会用到该特性,实现ORMaping 操作

3

block 调用时, 变量的生命周期:
1. 如果变量是在block 中声明和初始化,则该变量生命周期只是在block 内有效,一旦出了block 即自动释放
2. 如果变量是在block 外部进行声明,则变量会在block 进行复制, 当外部变量生命周期结束时, 该变量依旧有效, block 中复制的变量会在block 生命周期结束进行释放。在使用时需要注意内存泄漏。

block一种是内部变量,生命周期只在内部,一种是外部__的变量,可以对外部变量进行修改,一种是外部普通变量,对外部变量无法进行修改

 

 

 

别人对面试题的理解http://www.jianshu.com/p/4afa037dd74b?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1

 

 

1.array  dic的数据结构,数组去重策略  

2.tableview展示的时候cpu和gpu怎么协作的

3.gcd和nsthread区别

4.数据库升级

 5.swift运行时和oc运行时一样吗

6.view和layer区别 

 

7.msgSend_forward 是干啥的 

8.CoreAnimation 是如何开始和结束的


9.谈谈对内存管理和优化的看法


10.objc对象的selector如何找到对应IMP的


11.NSTimer使用时有什么注意事项(两点)

 

你可能感兴趣的:(高级iOS面试题)