- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
面试总结
Android面试题
iOS面试题
中级
高级
项目
其他地方总结
React Native面试题
开发总结学习
Android开发总结学习
基础题
本文档使用 看云 构建 - 2 -
面试总结
面试总结
Android面试题
iOS面试题
React Native面试题
本文档使用 看云 构建 - 3 -
Android面试题
Android面试题
本文档使用 看云 构建 - 4 -
iOS面试题
iOS面试题
基础
1. 为什么说Objective-C是一门动态的语言?
1. 什么叫动态静态?
静态、动态是相对的,这里动态语言指的是不需要在编译时确定所有的东西,在运行时还可以动态的添加变量
、方法和类
Objective-C 可以通过Runtime 这个运行时机制,在运行时动态的添加变量、方法、类等,所以说Objec
tive-C 是一门动态的语言
2. 其他说法
Objective-C 是C 的超集,在C 语言的基础上添加了面向对象特性 ,并且利用Runtime 这个运行时机制,
为Objective-C 增添了动态的特性。
Objective-C 使用的是 “消息结构” 并非 “函数调用” :使用消息结构的的语言,其运行时所应执行的代码
由运行期决定 ;而使用函数调用的语言,则由编译器决定
(1)动态类型语言 :动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语
言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来
。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
(2)静态类型语言 :静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在
写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
因为在运行期可以继续向类中添加方法,所以编译器在编译时还无法确定类中是否有某个方法的实现。对于类
无法处理一个消息就会触发消息转发机制
3. Objective-c的动态性
Objective-C的动态性 ,让程序在运行时判断其该有的行为,而不是像c等静态语言在编译构建时就确定下来
。它的动态性主要体现在3个方面 :
* 动态类型 :如id类型。实际上静态类型因为其固定性和可预知性而使用的特别广泛。静态类型是强类型,
动态类型是弱类型,运行时决定接收者。
* 动态绑定 :让代码在运行时判断需要调用什么方法,而不是在编译时。与其他面向对象语言一样,方法调用
和代码并没有在编译时连接在一起,而是在消息发送时才进行连接。运行时决定调用哪个方法。
* 动态载入。让程序在运行时添加代码模块以及其他资源。用户可以根据需要执行一些可执行代码和资源,而
不是在启动时就加载所有组件。可执行代码中可以含有和程序运行时整合的新类。
2. 讲一下MVC、MVP、MVVM?
MVC
本文档使用 看云 构建 - 5 -
iOS面试题
MVC有两个很明显的问题 :
1.m层和v层直接打交道,导致这两层耦合度高
2.因为所有逻辑都写在c层,导致c层特别臃肿
为了解决这两个问题,MVC的变种模式出现了MVP和MVVM.
MVP
本文档使用 看云 构建
文档评论(0)