1 / 34
文档名称:

ios面试题.docx

格式:docx   大小:31KB   页数:34页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ios面试题.docx

上传人:guoxiachuanyue001 2020/12/5 文件大小:31 KB

下载得到文件列表

ios面试题.docx

相关文档

文档介绍

文档介绍:ios 面试题
为什么说 Objective-C 是一门动态的语言?
-c 类的类型和数据变量的类型都是在运行是确定的, 而不是在编译时确定。例如:多态特性,我们可以使用父类 指针来指向子类对象,并且可以用来调用子类的方法。运行 时 (runtime) 特性 ,我们可以动态的添加方法,或者替换方法。
讲一下 MVC 和 MVVM ,MVP ?
MVC: 简单来说就是,逻辑、试图、数据进行分层,实现解 耦。
MVVM: 是 Model-View-ViewMode 模式的简称。由视图 (View) 、视图模型 (ViewModel) 、模型 (Model) 三部分组成 .比 MVC 更加释放控制器臃肿, 将一部分逻辑 (耗时,公共方法, 网络请求等 )和数据的处理等操作从控制器里面搬运到 ViewModel 中
MVVM 的特点:
低耦合。 View 可以独立于 Model 变化和修改,一个
ViewModel 可以绑定到不同的 View 上,当 View 变化的时 候 Model
可以不变,当 Model 变化的时候 View 也可以不变。 可重用性。 可以把一些视图的逻辑放在 ViewModel 里面,让 很多 View 重用这段视图逻辑。独立开发。开发人员可以专 注与业务逻辑和数据的开发 (ViewModel) 。设计人员可以专 注于界面 (View) 的设计。
可测试性。可以针对 ViewModel 来对界面 (View) 进行测试
MVP: 本小编没有接触, 希望可以得到大家的帮助。 可以在下 面留言。
为什么代理要用 weak ?代理的 delegate 和 dataSource 有什么区别? block 和代理的区别 ?
代理是使用 weak 来修饰的。 1. 使用 weak 是为了避免循环 引用。 2. 当使用 weak 修饰的属性,当对象释放的时候,系 统会对属性赋值 nil,object-c 有个特性就是对 nil 对象发送消 息也就是调用方法,不会 cash 。
delegate: 传递的是事件 (even) ,代理可以让 A 对象通知 B 对 象,我(A)发生的变化,前提 B遵循了 A的代理,并且实现
了 A的代理方法
dataSource: 传递的是数据。如果 A 对象声明了数据源,当 我们创建 A
对象的时候,我们就该实现数据源,来告诉 A,
他所需要的一些数据。例如: tableView 数据源方法,需要 告诉它,我要实现几组 cell ,每组 cell 多少行 cell ,实现的 cell 什么样式,什么内容
同样 delegate 和 dataSource, 都是可以使用 require 和 optional 来修饰的。
代理和 Block 的区别
相同点:代理和 Block 大多是我们都可以用来做倒序传值的。 我们都得注意避免循环引用。不然我们去使用代理还是
Block 的时候,都需要判断它们是否实现
不同点:代理使用 weak 修饰,代理必须先声明方法。当我 们调用代理的时候要判断是否已经实现。
block :使用的是 copy 来修饰, block 保存的是一段代码, 其实也就是一个函数。并且可以自动捕捉自动变量,如果想
修改此自动变量,还必须使用 __block 修饰。
属性的实质是什么?包括哪几个部分?属性默认的关键字 都有哪些? ***@dynamic
关键字和 ***@synthesize 关键字是用来 做什么的?
属性是描述类的特征,也就是具备什么特性。三个部分,带 下划线的成员变量, get 、 setter 方法。
默认关键字: readwrite ,assign, atomic; -- 是针对基本类型 (NSInteger, BOOL, NSUInteger, int, 等 )
但是针对引用类型 , 默认 :strong, readwrite, atomic ( 例如:
NSString, NSArray, NSDictory 等)
***@dynamic : 修饰的属性, 其 getter 和 setter 方法编译器是不 会自动帮你生成。必须自己是实现的。
***@synthesize :修饰的属性,其 getter 和 setter 方法编译器 是会自动帮你生成,不必自己实现。且指定与属性相对应的 成员变量。
属性的默认关键字是什么?
默认关键字,基本数据: atomic,readwrite,assign
普通的 OC 对象 : atomic,readwrite,strong
NSString 为什么要用 copy 关键字,如果用 strong 会有什 么问题?(注意:这里没有说用