我正在浏览Apple的PageControl示例。他们有一个名为ContentController的类。在类的子类PhoneContentController.m中,他们有:
@interface ContentController (PrivateMethods)
- (void)loadScrollViewWithPage:(int)page;
- (void)scrollViewDidScroll:(UIScrollView *)sender;
@end
这是否为ContentController类添加了一个类别?
为什么他们会把它放在这个文件中,而不是他们创建的原始文件?
通过在PhoneContentController.m文件中声明它,它是否为该类提供访问权限,而不需要为编译器提供任何其他指令?
(我试图理解OOAD原则以及Apple为什么在他们的示例代码,层次结构等中做某些事情)。谢谢!
答案 0 :(得分:1)
这是否为ContentController类添加了一个类别?
是的,他们正在添加一个类别。
为什么他们会把它放在这个文件中,而不是他们创建的原始文件?
如果我没记错的话,这样做是因为有两个UI(一个用于iPad,一个用于iPhone),这样他们只能编写一次代码并在不同的视图控制器中使用相同的处理程序。
通过在PhoneContentController.m文件中声明它,它是否为该类提供访问权限,而不需要为编译器提供任何其他指令?
嗯,是的。编译一个额外的4行文件是一件小事,我认为这是一个与模板相关的决策,而不是与编译器相关的决策。例如,分发3个样本文件而不是4个样本文件更简单。