将函数分离和封装到单独的类中是分解大量代码的常用概念。与一项任务有关的所有方法都可以作为对象集中在一起,通常是某种 UIView 子类,或 UIViewController 子类,用于值得拥有自己的信息屏幕的更大任务。例如,您可能拥有一个在设置了所需的 UIImage 后自行处理图像滚动的设备。但是,除此之外,您通常不应该拆分单个控制器的代码。控制器包含所有将视图与 MVC 模式中的模型一起显示的粘合剂。因此,一旦所有不依赖于模型的功能都被划分为视图,您就可以
我不建议将代码拆分为单独的文件,因为它们都有一个目的:协调屏幕上发生的事情并允许视图与模型交互。但是,我通常做的是根据代码管理的任务对代码进行分类和排序。因此,所有的生命周期和普通方法都可以排在最前面,然后是所有表格视图方法、图像查看器方法等。
这使得查找与特定任务相关的代码变得容易,在pragma
指令的帮助下甚至更容易。在任何方法之外,在已排序的方法组之间,您可以使用 apragma mark
将标识符分配给代码中的某个位置,可以通过跳转栏访问,就像我在以下示例代码中所做的那样。
#pragma mark - UIViewController Lifecycle Methods:
- (void) viewWillAppear{
//stuff
};
- (void) loadView{
//stuff
};
#pragma mark - UITableView Delegate & Datasource Methods:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//stuff
};
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//stuff
};
现在,如果您要转到 Xcode 代码查看器顶部的跳转栏并单击最右侧的对象以查找方法,您会看到:
我不相信在对您的代码进行排序、用 pragma 标记将其标记并将您可以使用的所有代码分离到其他 UIView 和 UIViewController 之后,您应该觉得需要将代码拆分为几个文件;您可以使用跳转栏转到代码的任何部分,就像交换文件一样。但是,这样一来,您就不会从一个类中分割代码并在整个地方留下点点滴滴。