iOS面试题我的阅读iOS在路上

iOS面试题06-应用程序(★★)

2018-03-26  本文已影响1196人  八级大狂风AM

2018 iOS面试题系列

一、NSRunLoop的实现机制,及在多线程中如何使用

NSRunLoop是IOS消息机制的处理模式


二、IOS7之前,后台执行内容有几种形式,都是什么

一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间(10S左右)。

  1. 后台播放音乐
  2. 后台GPS跟踪
  3. 后台voip支持

三、简单说一下 APP的启动过程,从 main文件开始说起

程序启动分为两类:1.有storyboard2.没有storyboard


四、把程序自己关掉和程序进入后台,远程推送的区别
  1. 关掉后不执行任何代码, 不能处理事件
  2. 应用程序进入后台状态不久后转入挂起状态。在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除。只有当用户再次运行此应用,应用才会从挂起状态唤醒,代码得以继续执行
    3.或者进入后台时开启多任务状态,保留在内存中,这样就可以执行系统允许的动作
    4.远程推送是由远程服务器上的程序发送到APNS,再由APNS把消息推送至设备上的程序,当应用程序收到推送的消息会自动调用特定的方法执行事先写好的代码

五、本地通知和远程推送通知对基本概念和用法?

本地通知和远程推送通知都可以向不在前台运行的应用发送消息,这种消息既可能是即将发生的事件,也可能是服务器的新数据.不管是本地通知还是远程通知,他们在程序界面的显示效果相同,都可能显示为一段警告信息或应用程序图标上的微章.
本地通知和远程推送通知的基本目的都是让应用程序能够通知用户某些事情, 而且不需要应用程序在前台运行.二者的区别在于本地通知由本应用负责调用,只能从当前设备上的iOS发出, 而远程通知由远程服务器上的程序发送到APNS,再由APNS把消息推送至设备上的程序


六、如果有人恶意重复注册账号,让我写一个接口,我怎么防止这样的事情。

使用HTTPS,加时间戳1分钟内不允许重复发送, 短信验证, 判断手机号段保证号码正确,不是虚拟号吗. 保证邮箱,手机号等设备的标识唯一,并且在输入验证时判断,如果多次验证码错误.可以锁定账号或着手机注册.


七、最常使用的地图是什么?

国内:百度、高德
国外:mapbox


八、集成地图时都使用了哪些技术?

使用地理编码和反编码进行地图定位,查找等功能,大头针的使用,路线查找。
如果安卓和iOS用的不是同一个地图(比如安卓用的百度,iOS用的高德),需要做一套地图纠偏(国内的地图对应的经纬度都是有偏差的,称为“火星坐标”)


九、集成地图有什么用?

可以给用户更好的体验,使用苹果原生地图在位置定位的时候需要跟后台的数据进行转换,容易出错,因为一般后台用的都是百度或者高德地图,和苹果原生地图的坐标不同,就算转换后也容易出现偏差


十、简单给出购物车的实现思路?

iOS走近商城APP(五 购物车)


十一、分析一下使用手机获取验证码注册账号的实现逻辑(给了一个示例图),发送到手机的验证码超过60秒钟后重新发送

定义一个 label属性,赋值为59秒在定义一个 count 设置一个timer每次减少一秒把count-- 再把 count 的值拼接到 label上当 count == 0 的时候在显示验证码输入


上一篇下一篇

猜你喜欢

热点阅读