0

我正在学习斯坦福的 CS193P iOS 课程,在其中一项作业中,我们需要多个 UITableView。在作业笔记中,老师说:

“并使用你出色的面向对象编程设计技能,确保尽可能多地重用代码。这个应用程序中的许多 MVC 都非常相似。创建 UITableViewController 的子类来做某事是完全可以的,然后创建一个该类的子类来做一些更精致的事情。”

所以与其拥有

@interface myFirstTableViewController : UITableViewController

@interface mySecondTableViewController : UITableViewController

他暗示我们使用:

@interface myFirstTableViewController : UITableViewController

@interface mySecondTableViewController : myFirstTableViewController

当我这样做时,mySecondTableViewController只有以下方法:

initWithNibName
viewDidLoad
didReceiveMemoryWarning

这里发生了什么事?在mySecondViewController中,我是否只需要实现那些不同的方法myFirstTableViewController(可能稍作更改然后调用super版本?

此外,这是正确的做事方式还是最好将我的每个自定义 tvcs 作为 UITableViewController 的单独子类?

4

1 回答 1

2

更可能的模式是:

@interface CommonTableViewController : UITableViewController
...
@interface FirstTableViewController : CommonTableViewController
...
@interface SecondTableViewController : CommonTableViewController

然而,很难设置上下文无关的规则。这真的取决于有多少相似的代码可以移动到共同的父级中。mySecondTableViewController(如果一切都正确,那么您构建事物的方式也不一定是错误的myFirstTableViewController,再加上一点。)

于 2012-11-01T16:23:26.527 回答