IOS面试题

1、Object-C有多继承吗?没有的话用什么代替?

2、Object-C有私有方法吗?私有变量呢?
3、#import和#include的区别,@class代表什么?
4、Object-C的内存管理?
5、为什么很多内置的类,如TableViewController的delegate的属性是assign不是retain?
6、定义属性时,什么情况使用copy、assign、retain?
7、对象是什么时候被release的?
8、iOS有没有垃圾回收?
9、tableView的重用机制?
10、ViewController 的loadView、viewDidLoad、viewDidUnload分别是什么时候调用的,在自定义ViewCointroller时在这几个函数中应该做什么工作?
11、ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是什么?
12、列举Cocoa中常见的集中多线程的实现,并谈谈多线程安全的几种解决办法,一般什么地方会用到多线程?
13、怎么理解MVC,在Cocoa中MVC是怎么实现的?
14、delegate和notification区别,分别在什么情况下使用?
15、self.跟self什么区别?
16、id、nil代表什么?
17、内存管理 Autorelease、retain、copy、assign的set方法和含义?
18、类别的作用?
19、委托(举例)

20、retainCount?


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1、Object-C有多继承吗?没有的话用什么代替?

Object-C木有多继承。用协议(Protocol)代替。

2、Object-C有私有方法吗?私有变量呢?

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?

你可能感兴趣的:(多线程,ios,mvc,工作,cocoa,Class)