【发布时间】:2011-11-04 20:15:26
【问题描述】:
到目前为止,我开发了一些应用程序。现在我正在写一个新的,在这个项目中我希望保持代码非常干净,所以很容易找到方法。
我想从 UIViewControllers 开始,它的 view 有一个 UITableView 作为子视图。我希望为所有直接属于它的函数创建一个名为 DetailViewController 的文件。另一个名为DetailViewController+Protocols 的文件应该包含上述类的一个类别以及UITableView 的所有这些委托方法。
有可能做这样的事情吗?我想保持我的代码干净并将其拆分为多个文件。
编辑
DetailViewController.h
@interface DetailViewController : UIViewController
... Some Properties
... Some Methods
@end
DetailViewController.m
#import "DetailViewController.h"
@implementation DetailViewController
... Some Synthesizes
... Some Methods
@end
DetailViewController+Protocols.h
@interface DetailViewController (Protocols) <UITableViewDelegate, UITableViewDataSource>
@end
DetailViewController+Protocols.m
@implementation DetailViewController (Protocols)
- (NSINteger)numberOfSections
{
return ...;
}
- (NSInteger)numberOfRowsInSection:(NSInteger)section
{
if (section == 0)
return ...;
return ...;
}
...
@end
但随后 Xcode 显示了一个警告,即某些委托方法未在 DetailViewController 中实现。我还尝试在 DetailViewController.h 中导入 DetailViewController+Protocols.h。没有变化。
然后我尝试忽略警告并查看:它有效!但为什么?如果没有这些警告,它不应该工作吗?
【问题讨论】:
标签: objective-c ios coding-style delegates split