iOS电话面试题详解Push机制、生命周期与数据结构

1. Push原理

推送通知是iOS应用程序常见功能之一,允许应用在后台接收消息。Push原理可以分为三阶段:

- 第一阶段:服务器打包消息并附加目标iPhone标识,发送给Apple推送通知服务(APNS)。

- 第二阶段:APNS在注册列表中匹配标识,将消息传送到目标iPhone。

- 第三阶段:iPhone接收消息,传递给应用并弹出通知。

2. View Controller生命周期

View Controller生命周期包括五个方法:

- viewDidLoad:视图加载后调用。

- viewWillAppear:视图即将显示时调用。

- viewDidAppear:视图完全显示后调用。

- viewWillDisappear:视图被驳回前调用。

- viewDidDisappear:视图被驳回后调用。

3. Frame和Bounds的区别

Frame定义视图在父视图中的位置和大小,Bounds定义在自身坐标系统中的位置和大小。修改Frame会影响Bounds,但两者表示不同的坐标系统。

4. SQLite中插入特殊字符的方法

在SQLite中插入特殊字符时,用两个单引号替换单引号,即''。可以通过replace方法替换其他特殊字符为合适格式。

5. 数组和集合的认识

  • NSArray:用于对象的有序集合,常用initWithObjectinitWithObjects
  • NSMutableArray:可变数组,支持删除、添加、排序。
  • NSSet:无序集合;NSDictionary用于键值对映射。

6. Socket编程简述

Socket编程基于TCP/IP协议,用于网络程序通信。客户端编程过程包括加载库、创建套接字、向服务器请求连接、进行通信、关闭套接字。

7. 冒泡算法

冒泡算法是一种排序算法,步骤为:依次比较数组元素,将最大的移动到最后,重复此过程直至排序完成。时间复杂度为$O(n^2)$。

doc 文件大小:77KB