乐趣区

关于ios:iOS技术面试题及答案

一、如何绘制 UIView?

绘制一个 UIView 最灵便的办法就是由它本人实现绘制。实际上你不是绘制一个 UIView,而是子类化一个 UIView 并赋予绘制本人的能力。当一个 UIView 须要执行绘制操作时,drawRect:办法就会被调用,笼罩此办法让你取得绘图操作的机会。当 drawRect:办法被调用,以后图形的上下文也被设置为属于视图的图形上下文,你能够应用 Core Graphic 或者 UIKit 提供的办法将图形画在该上下文中。

二、什么是 MVVM?次要目标是什么?长处有哪些?

MVVM 即 Model-View-ViewModel

1.View 次要用于界面出现,与用户输出设施进行交互、

2.ViewModel 是 MVVM 架构中最重要的局部,ViewModel 中蕴含属性,办法,事件,属性验证等逻辑,负责 View 与 Model 之间的通信

3.Model 就是咱们常说的数据模型,用于数据的结构,数据的驱动,次要提供根底实体的属性。

MVVM 次要目标是拆散视图和模型

MVVM 长处:低耦合,可重用性,独立开发,可测试

三、get 申请与 post 申请的区别

1.get 是向服务器发索取数据的一种申请,而 post 是向服务器提交数据的一种申请

2.get 没有申请体,post 有申请体

3.get 申请的数据会裸露在地址栏中,而 post 申请不会,所以 post 申请的安全性比 get 申请号

4.get 申请对 url 长度有限度,而 post 申请对 url 长度实践上是不会收限度的,然而实际上各个服务器会规定对 post 提交数据大小进行限度。

四、谈谈你对多线程开发的了解?ios 中有几种实现多线程的办法?

益处:

1. 应用多线程能够把程序中占据工夫长的工作放到后盾去解决,如图片,视频的下载;

2. 施展多核处理器的劣势,并发执行让零碎运行的更快,更晦涩,用户体验更好;

毛病:

1. 大量的线程升高代码的可读性;

2. 更多的线程须要更多的内存空间;

3 当多个线程对同一个资源呈现抢夺的时候要留神线程平安的问题。

ios 有 3 种多线程编程的技术:1.NSThread,2.NSOperationQueue,3.gcd;

五、XMPP 工作原理;xmpp 零碎特点

原理:

1. 所有从一个 client 到另一个 client 的 jabber 音讯和数据都要通过 xmpp server

2.client 链接到 server

3.server 利用本地目录零碎的证书对其认证

4.server 查找,连贯并进行互相认证

5.client 间进行交互

特点:1)客户机 / 服务器通信模式;2)分布式网络;3)简略的客户端;4)XML 的数据格式

六、地图的定位是怎么实现的?

1. 导入了 CoreLocation.framework

2.ios8 当前,如果须要应用定位性能,就须要申请用户受权,在首次运行时会弹框提醒

3. 通过本机自带的 gps 获取地位信息 (即经纬度)

七、苹果内购实现流程

程序通过 bundle 存储的 plist 文件失去产品标识符的列表。

程序向 App Store 发送申请,失去产品的信息。

App Store 返回产品信息。

程序把返回的产品信息显示给用户(App 的 store 界面)

用户抉择某个产品

程序向 App Store 发送领取申请

App Store 解决领取申请并返回交易实现信息。

App 获取信息并提供内容给用户。

八、支付宝,微信等相干类型的 sdk 的集成

1. 在支付宝开发平台创立利用并获取 APPID

2. 配置密钥

3. 集成并配置 SDK

4. 调用接口(如交易查问接口,交易退款接口)

九、gcd 产生死锁的起因及解锁的办法

产生死锁的必要条件:1. 互斥条件,2. 申请与放弃条件,3. 不剥夺条件,4. 循环期待条件。

解决办法:采纳异步执行 block。

十、生成二维码的步骤

1. 应用 CIFilter 滤镜类生成二维码

2. 对生成的二维码进行加工,使其更清晰

3. 自定义二维码背景色、填充色

4. 自定义定位角标

5. 在二维码核心插入小图片

总结

以上就是这篇文章的全部内容了,心愿本文的内容对各位 iOS 开发者们在面试的时候能有所帮忙。

退出移动版