iOS面试重点:MVC模式与网络协议端口解析

需积分: 9 2 下载量 13 浏览量 更新于2024-07-22 收藏 119KB DOCX 举报
"这篇资源主要涉及了iOS面试中的一些理论问题,包括对MVC架构模式的解释、常用网络协议的端口号以及iOS开发中的几个关键概念和方法的解析。" 在iOS开发中,MVC(Model-View-Controller)是一种广泛应用的架构模式,苹果在其平台上尤为推崇。MVC将应用程序的结构分为三个主要组件: 1. Model(模型):模型层是应用程序的核心,负责存储和管理数据。在这个例子中,如果是一款太空大战游戏,模型会包含飞船的属性如大小、速度、位置以及武器信息等,并处理相关的逻辑,如决定飞船击落敌机所需的命中次数。模型不直接与用户界面交互,它的变化需要通过控制器来传递。 2. Controller(控制器):控制器是模型和视图之间的桥梁,它控制着视图如何显示模型中的数据。控制器通常通过视图控制器的生命周期方法来管理视图的变化,例如加载视图时调用`viewDidLoad`,视图即将显示时调用`viewWillAppear`等。 3. View(视图):视图是用户界面的呈现部分,它们根据控制器的指示来显示数据。视图完全受控于视图控制器,执行显示任务,如显示飞船、敌机等游戏元素。 此外,面试中还涉及了网络协议的端口号: - FTP(文件传输协议)通常使用20或21端口进行数据传输。 - TELNET(远程登录协议)使用23端口进行通信。 - POP3(邮局协议)用于接收邮件,通常监听110端口。 开发者还需要理解iOS中的某些核心概念,如frame和bounds的区别。Frame定义了一个view在父view坐标系中的位置和尺寸,而bounds则是在自身坐标系中的位置和尺寸。当bounds的大小改变时,frame通常也会相应改变,因为view的大小调整可能会影响到它在父view中的位置。 对于UIViewController的生命周期,其方法调用顺序大致如下: 1. `- (void)viewDidLoad`:视图控制器的视图首次被加载到内存时调用。 2. `- (void)viewDidUnload`:视图控制器的视图不再需要时,系统可能会卸载视图以节省内存,此时调用。 3. `- (void)viewWillAppear:(BOOL)animated`:视图即将在屏幕上出现时调用。 4. `- (void)viewDidAppear:(BOOL)animated`:视图已经完全出现在屏幕上,用户可以与其交互时调用。 5. `- (void)viewWillDisappear:(BOOL)animated`:视图即将从屏幕上消失时调用。 6. `- (void)viewDidDisappear:(BOOL)animated`:视图已经从屏幕上消失时调用。 最后,UITableView的执行流程涉及几个关键方法: 1. `- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView`:返回表格的section数量。 2. `- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section`:为指定section提供表头标题。 3. `- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section`:返回指定section中的行数。 4. `- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath`:为指定行设定高度。 这些面试题涵盖了iOS开发的基础知识,对于准备面试的iOS开发者来说,理解并能够熟练运用这些概念和技术至关重要。