iOS面试题整理(1)
1. Difference between shallow copy and deep copy?
1> 浅拷贝:指针(地址)拷贝,不会产生新对象(即分配新的内存)
2> 深拷贝:内容拷贝,会产生新对象(即分配新的内存)
2. What is advantage of categories? What is difference between implementing a category and inheritance?
1> 分类可以在不修改原来类模型的基础上拓充方法
2> 分类只能扩充方法、不能扩充成员变量;继承可以扩充方法和成员变量
3> 继承会产生新的类
3. Difference between categories and extensions?
1> 分类是有名称的,类扩展没有名称
2> 分类只能扩充方法、不能扩充成员变量;类扩展可以扩充方法和成员变量
3> 类扩展一般就写在.m文件中,用来扩充私有的方法和成员变量(属性)
4. Difference between protocol in objective c and interfaces in java?
1> Java的接口中声明的方法必须都实现
2> OC的protocol中声明的方法并不一定要实现
5. What are KVO and KVC?
1> KVC是键值编码,可以通过一个字符串的key(属性名)修改对象的属性值
2> KVO是键值监听,可以监听一个对象属性值的改变
6. What is purpose of delegates?
1> 两个对象之间传递数据和消息
2> 解耦,拆分业务逻辑
7. What are mutable and immutable types in Objective C?
1> mutable是可变类型,比如NSMutableArray,可以动态往里面添加元素
2> immutable是不可变类型,比如NSArray,固定的存储空间,不能添加元素
8. When we call objective c is runtime language what does it mean?
1> 动态绑定:对象类型在运行时才真正确定
2> 多态性
9. what is difference between NSNotification and protocol?
1> 通过NSNotification可以给多个对象传递数据和消息
2> 通过protocol(代理模式)只能给一个对象传递数据和消息
10. What is push notification?
1> 本地推送:程序内部弹出通知到用户设备
2> 远程推送:由推送服务器推送通知到用户设备
11. What is Polymorphism?
多态:父类指针指向子类对象
12. What is Singleton?
单粒:保证程序运行过程中,永远只有一个对象实例
目的是:全局共享一份资源、节省不必要的内存开销
13. What is responder chain?
响应者链:
l UIResponder有一个nextResponder属性,通过该属性可以组成一个响应者链,事件或消息在其路径上进行传递
l 如果UIResponder没有处理传给它的事件,会将未处理的消息转发给自己的nextResponder
14. Difference between frame and bounds?
1> frame以父控件的左上角为坐标原点
2> bounds以控件本身的左上角为坐标原点
15. Difference between method and selector?
通过一个selector可以找到方法地址,进而调用一个方法
16. Is there any garbage collection mechanism in Objective C.?
1> OC 1.0没有垃圾回收
2> OC 2.0有垃圾回收,只能用在Mac上
3> iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性
17. What is NSOperation queue?
1> 用来存放NSOperation对象的队列,可以用来异步执行一些操作
2> 一般可以用在网络请求等耗时操作
18. What is lazy loading?
延迟加载(懒加载):比如
控制器的view,在第一次用到view时才会调用loadView方法进行创建
19. Can we use two tableview controllers on one viewcontroller?
从技术角度上分析,一个控制器内部添加2个表格控制器是没有问题的
20. Can we use one tableview with two different datasources? How you will achieve this?
从对象属性上分析,tableView只有一个dataSource属性。当然,也可以使用2个不同的数据源
21. When to use NSMutableArray and when to use NSArray?
1> 当数组元素需要动态地添加或者删除时,用NSMutableArray
2> 当数组元素固定不变时,用NSArray
22. Give us example of what are delegate methods and what are data source methods of uitableview.
1> 代理方法:返回tableView每行的高度、监听tableView每行的选中
2> 数据源方法:返回tableView数据的组数和行数、每行显示什么数据
23. How many autorelease you can create in your application? Is there any limit?
没有限制
24. If we don’t create any autorelease pool in our application then is there any autorelease pool already provided to us?
系统会默认会不定时地创建和销毁自动释放池
25. When you will create an autorelease pool in your application?
当需要精确地控制对象的释放时间时,需要手动创建自动释放池
26. When retain count increase?
当做一次retain或者copy操作,都有可能增加计数器
27. What are commonly used NSObject class methods?
NSObject常见的类方法有:alloc、new、description等
28. What is convenience constructor?
像NSStirng的stringWithFormat,NSNumber的numberWithInt
29. How to design universal application in Xcode?
1> 创建项目时,Device选择Universal
2> 可以创建一套痛用的数据模型
3> 根据iPhone\iPad选择不同的控制器(iPad可能用UISplitViewController)
4> 根据iPhone\iPad选择不同的界面
30. What is keyword atomic in Objective C?
1> atomic是原子性
2> atomic会对set方法的实现进行加锁
31. What are UIView animations?
UIView封装的核心动画可以通过类方法\block实现
32. How can you store data in iPhone applications?
1> 属性列表
2> Preference(NSUserDefaults)
3> 键值归档(NSKeyedArchiver、NSCoding)
4> SQLite数据库
5> Core Data
33. What is NSManagedObject model?
NSManagedObject是Core Data中的实体对象
34. What is predicate?
谓词:可以以一定条件来过滤数组、字典等集合数据,也能用在Core Data的数据查询中
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。