iOS面试精华:MVC架构、网络协议与UIViewController生命周期详解

需积分: 10 10 下载量 48 浏览量 更新于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开发者来说至关重要,它们能帮助理解应用程序的组织结构、数据管理、网络通信以及用户界面的响应式设计。在面试中,对这些问题的深入理解和实践经验会大大提高你的竞争力。