iOS面试精华:MVC架构、网络协议与UIViewController生命周期详解
需积分: 10 88 浏览量
更新于2024-09-12
1
收藏 119KB DOCX 举报
iOS面试题-iOS部分涵盖了iOS开发中重要的基础知识和面试常见问题。以下是详细的解析:
1. **MVC架构模式**:
- MVC(Model-View-Controller)是一种常见的软件设计模式,由苹果公司广泛应用于iOS应用开发中。MVC将应用程序划分为三个核心组件:
- Model:负责存储和管理应用程序的数据,如游戏中的飞船属性,如大小、速度、位置等。它关注数据结构和业务逻辑。
- Controller:控制数据流向,作为模型和视图之间的中介,处理数据绑定和用户交互。它是应用程序逻辑的核心部分,通过观察模型的变化来更新视图。
- View:负责界面展示,根据Controller的指令渲染UI元素,不涉及数据管理。
2. **常用网络协议端口号**:
- HTTP:默认端口80用于HTTP服务
- FTP(文本传输协议):常用端口20(数据连接)和21(控制连接)
- TELNET:远程登录协议,端口23
- POP3:邮件接收协议,端口110
3. **frame与bounds的区别**:
- frame:一个UIView的frame属性表示其在父容器中的绝对位置和尺寸,以父容器的坐标系统为参考。
- bounds:一个UIView的bounds属性则表示其在自身坐标系统中的位置和尺寸,即相对于其自身的可视区域。
4. **UIViewController的生命周期方法**:
- viewDidLoad:在加载视图时被调用,用于初始化视图及其子视图。
- viewDidUnload:当内存不足时,可能会被系统调用以释放视图的资源,但现代iOS版本中很少使用。
- viewWillAppear和viewDidAppear:分别在视图即将显示和已显示时调用,用于做状态切换前后的准备。
- viewWillDisappear和viewDidDisappear:反之,这两个方法在视图即将隐藏和已隐藏时调用。
5. **UITableView的执行流程**:
- UITableViewDataSource协议要求实现的方法:
- numberOfSectionsInTableView:返回TableView的section数量。
- tableView:titleForHeaderInSection:根据索引返回每个section的头部标题(可选)。
- tableView:numberOfRowsInSection:确定每section中的行数。
- tableView:heightForRowAtIndexPath:为每个cell定制高度。
- UITableViewDelegate协议则用于处理用户交互,如cell的点击事件等。
掌握以上知识点对于iOS开发者来说至关重要,它们能帮助理解应用程序的组织结构、数据管理、网络通信以及用户界面的响应式设计。在面试中,对这些问题的深入理解和实践经验会大大提高你的竞争力。
2016-03-15 上传
2015-12-11 上传
2015-12-11 上传
2023-05-29 上传
2023-09-01 上传
2023-05-19 上传
2023-12-25 上传
2023-12-08 上传
2023-10-19 上传
hober.z
- 粉丝: 141
- 资源: 131
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍