美文网首页
iOS精选面试题①

iOS精选面试题①

作者: 莫忘小猪 | 来源:发表于2016-07-26 16:43 被阅读0次

1.OC语言的基本特点

1⃣️OC语言是C语言的一个超集,只是在C的基础上加上了面向对象的特性

2⃣️OC与Java语言相同都是单继承,这一点与C++语言不同(多重继承)

3⃣️OC不支持命名空间机制,取而代之的是在类名之前添加前缀,以此来区分

2.#include与#import的区别、#import与@class的区别

1⃣️#include与#import的区别:#include与#import的效果相同,只是后者不会引起交叉编译,确保头文件只会被导入一次

2⃣️#import与@class的区别:#import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会在告诉,使用#import效率高,防止相互包含的编译错误。

3.简述类目优点和缺点,如果覆盖本类或者父类的方法,会出现什么问题

1⃣️优点:不需要通过增加子类而增加现有类的行为(方法),且类目中的方法与原始类方法基本没有区别

2⃣️缺点:无法向类目添加实例变量。覆盖原始类方法后,原始类的方法没办法调用

4.简述内存管理基本原则

如果使用alloc、copy(mutableCopy)或者retain一个对象时,你就有义务向他发送一条release或者autorelease消息。其他方法创建的对象,不需要由你来管理内存。

5.什么是ARC技术?与GC是否相同?

ARC是Automatic Reference Counting的简称,我们称之为自动引用计数,是iOS5.0之后推出的内存管理的新特性。本质上还是使用引用计数来管理对象,只是我们在编写代码是,不需要向对象发送release或者autorelease方法,也不可以调用delloc方法,编译器会在合适的位置自动给用户生成release消息(autorelease)。GC的全称是garbage collection,内存垃圾回收机制,ARC比GC性能好。

6.iOS中是否支持垃圾回收机制?

iOS开发只支持手动内存管理(MRC)与自动内存管理(ARC),Mac开发支持GC垃圾回收机制,10.8之后弃用了垃圾回收机制(GC),推荐使用ARC。

7.深、浅复制的基本概念以及他们的区别

浅复制:只复制对象本身,不对里面的属性复制。

深复制:不仅复制对象本身,对象持有的属性对象也做复制。

相关文章

网友评论

      本文标题:iOS精选面试题①

      本文链接:https://www.haomeiwen.com/subject/qsinjttx.html