iOS面试题
2015-07-04 23:08
288 查看
1.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?
readwrite 是可读可写特性;需要生成getter方法和setter方法时
readonly 是只读特性 只会生成getter方法 不会生成setter方法 ;不希望属性在类外改变
assign 是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;
retain 表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;
copy 表示拷贝特性,setter方法将传入对象复制一份;需要完全一份新的变量时。
nonatomic 非原子操作,决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic
2. Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?
线程创建有三种方法:使用NSThread创建、使用GCD的dispatch、使用子类化的NSOperation,然后将其加入NSOperationQueue;在主线程执行代码,方法是performSelectorOnMainThread,如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone:
3.描述一下iOS SDK中如何实现MVC的开发模式
MVC是模型、试图、控制开发模式,对于iOS SDK,所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。所有的用户数据都是模型层,它应该独立于视图。所有的ViewController都是控制层,由它负责控制视图,访问模型数据。
readwrite 是可读可写特性;需要生成getter方法和setter方法时
readonly 是只读特性 只会生成getter方法 不会生成setter方法 ;不希望属性在类外改变
assign 是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;
retain 表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;
copy 表示拷贝特性,setter方法将传入对象复制一份;需要完全一份新的变量时。
nonatomic 非原子操作,决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic
2. Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?
线程创建有三种方法:使用NSThread创建、使用GCD的dispatch、使用子类化的NSOperation,然后将其加入NSOperationQueue;在主线程执行代码,方法是performSelectorOnMainThread,如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone:
3.描述一下iOS SDK中如何实现MVC的开发模式
MVC是模型、试图、控制开发模式,对于iOS SDK,所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。所有的用户数据都是模型层,它应该独立于视图。所有的ViewController都是控制层,由它负责控制视图,访问模型数据。
相关文章推荐
- 以我在LinkedIn做面试官的经验,来给程序猿面试提些建议
- 程序员学习能力提升三要素
- 黑马程序员—IO流
- 黑马程序员——Java基础---线程的另一个总结(9)--其他同步工具
- 黑马程序员——Java基础--反射(一)
- 黑马程序员——Java基础---线程的另一个总结(8)--Semaphere同步工具,控制线程可用线程
- 黑马程序员——3,JAVA基础(函数,数组相关)
- 黑马程序员——Java基础---线程的另一个总结(7)--condition,await
- 黑马程序员——OC基础学习(五)---分类(Category),代码块Block和protocol代理设计模式
- Java面试求职之Java编程基础
- 面试题29:数组中出现次数超过一半的数字
- 一次面试失败的收获
- 程序员需要知道的10大编程格言
- 黑马程序员-面向对象
- 黑马程序员——Java基础---线程的另一个总结(6)--线程读写锁,缓存小例子
- 漫谈程序员系列:怎么告别“混日子”
- 转载面试
- 找出字符串中第1个只出现1次的字符
- 黑马程序员——Java基础---线程的另一个总结(5)--线程池,线程定时器
- 面试题25:二叉树中和为某一值的路径