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?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值