1、Object-C有多继承吗?没有的话用什么代替?
2、Object-C有私有方法吗?私有变量呢?20、retainCount?
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1、Object-C有多继承吗?没有的话用什么代替?
Object-C木有多继承。用协议(Protocol)代替。
Object-C木有私有方法。有私有变量。
3、#import和#include的区别,@class代表什么?
#import可以防止重复引用而#include不能。
@class 用来进行前置声明。
4、Object-C的内存管理?
使用引用计数器(retainCount),当引用计数器为0时系统自动调用dealloc函数释放内存。
5、为什么很多内置的类,如TableViewController的delegate的属性是assign不是retain?
防止循环引用
6、定义属性时,什么情况使用copy、assign、retain?
用来设置该属性的set方法。
对象不需增加retainCount时用copy。assign一般用在简单数据类型,当然也有对象比如delegate。需要增加引用计数器一般用retain。
8、iOS有没有垃圾回收?
木有。
9、tableView的重用机制?
每个cell绑定一个static类型的NSString作为标示符,通过这个标示符来获取已经存在的cell,存在则复用,不存在则重新创建。
10、ViewController 的loadView、viewDidLoad、viewDidUnload分别是什么时候调用的,在自定义ViewCointroller时在这几个函数中应该做什么工作?
11、ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?
程序当前占用内存超过系统设定的阙值后系统调用,默认的操作是viewDidUnLoad。
12、列举Cocoa中常见的集中多线程的实现,并谈谈多线程安全的几种解决办法,一般什么地方会用到多线程?
13、怎么理解MVC,在Cocoa中MVC是怎么实现的?
M:数据 V:视图 C:控制器
通过C来控制M与V之间的交互。M与V之间不直接交互。
14、delegate和notification区别,分别在什么情况下使用?
16、id、nil代表什么?
id相当于void*。nil代表一个空对象。
17、类别的作用?
18、委托(举例)
19、retainCount?