非标准答案
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使用时有什么注意事项(两点)