我应该声明我的类从协议实现的方法吗?

时间:2014-04-21 16:00:06

标签: objective-c class methods protocols declaration

假设我有一个符合协议的Objective-C类。在类中,我实现了协议中的一些方法。我应该在类扩展中声明这些方法还是应该避免它?

示例

// MyViewController.h

@interface MyViewController : UIViewController

<UITableViewDataSource>

@end

// MyViewController.m

@interface MyViewController ()

// Should I skip this?
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

@end

@implementaion MyViewController

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // The implementaion goes here
}

@end

1 个答案:

答案 0 :(得分:0)

协议有必需和可选方法。当协议方法是可选的时,您应该在类扩展或类本身的接口部分中声明它。这将让编译器为您检查一致性。

在实施所需的方法时,例如tableView:numberOfRowsInSection:,您可以采用任何一种方式,具体取决于贵公司使用的编码标准。我更喜欢声明这些方法 - 无论是在类扩展中还是在接口本身中。这样我就不需要检查是否需要方法。