ios最新面试题及答案(7.29)

ios最新面试题及答案(7.29)

ID:8913838

大小:64.63 KB

页数:43页

时间:2018-04-12

ios最新面试题及答案(7.29)_第1页
ios最新面试题及答案(7.29)_第2页
ios最新面试题及答案(7.29)_第3页
ios最新面试题及答案(7.29)_第4页
ios最新面试题及答案(7.29)_第5页
资源描述:

《ios最新面试题及答案(7.29)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、最全的iOS面试题及答案什么是静态库静态库和动态库的区别程序编译一般需经预处理、编译、汇编和链接几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库

2、的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的复本,因此节省了很多内存。ViewController声明周期ViewController生命周期中有那么多函数,一个重要问题就是什么代码该写在什么地方。1、init里不要出现创建view的代码。良好的设计,在init里应该只有相关数据的初始化,而且这些数据都是比较关键的数据。init里不要掉self.view,否则会导致viewcontroller创建view。(因为view是lazyinit的)。2、loadView中只初始化view,一般用于创建比较关键的view如tableViewContr

3、oller的tabView,UINavigationController的navgationBar,不可掉用view的getter(在掉superloadView前),最好也不要初始化一些非关键的view。如果你是从nib文件中创建的viewController在这里一定要首先调用super的loadView方法,但建议不要重载这个方法。3、viewDidLoad这时候view已经有了,最适合创建一些附加的view和控件了。有一点需要注意的是,viewDidLoad会调用多次(viewcontroller可能多次载入view,参见图2)。4、viewWillAppea

4、r这个一般在view被添加到superview之前,切换动画之前调用。在这里可以进行一些显示前的处理。比如键盘弹出,一些特殊的过程动画(比如状态条和navigationbar颜色)。5、viewDidAppear一般用于显示后,在切换动画后,如果有需要的操作,可以在这里加入相关代码。6、viewDidUnload这时候viewController的view已经是nil了。由于这一般发生在内存警告时,所以在这里你应该将那些不在显示的view释放了。比如你在viewcontroller的view上加了一个label,而且这个label是viewcontroller的属性,

5、那么你要把这个属性设置成nil,以免占用不必要的内存,而这个label在viewDidLoad时会重新创建。  1.Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?  答:Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。没有,cocoa中所有的类都是NSObject的子类,多继承在这里是用protocol委托代理

6、来实现的 ,ood的多态特性在obj-c中通过委托来实现。  2.#import跟#include又什么区别,@class呢,#import<>跟#import””又什么区别?  答:#import是Objective-C导入头文件的关键字,#include是C/C++导入头文件的关键字,使用#import头文件会自动只导入一次,不会重复导入,相当于#include和#pragmaonce;@class告诉编译器某个类的声明,当执行时,才去查看类的实现文件,可以解决头文件的相互包含;#import<>用来包含系统的头文件,#import””用来包含用户头文件。  3.

7、属性readwrite,readonly,assign,retain,copy,nonatomic各是什么作用,在那种情况下用?  1.readwrite是可读可写特性;需要生成getter方法和setter方法时  2.readonly是只读特性只会生成getter方法不会生成setter方法;不希望属性在类外改变  3.assign是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;  4.retain表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;  5.copy表示赋值特性,se

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。