我在 obj-c 中实现了以下类方案:A 类是 UIViewController 的子类。B 类和 C 类是 A 的子类。现在我需要创建一个 D 类,它必须是 A 的子类,但它包含一个 UItableView,因此它也需要 UITableViewController 功能。我的问题是,我该如何解决这个问题?这样做最优雅的方式是什么?我对如何做到这一点有一些想法:
1- 使 A 成为 UITableViewController 的子类,并在不使用 UItableViews 的类上重载 loadView 方法,以捕获当 se 尝试加载没有 UITableView 的 UITableViewController 时抛出的异常。(在我看来,这个解决方案更像是一个 hack,而不是一个解决方案!)
2- 保持一切不变,并在 D 中实现 UITableDelegate 和 UITableDataSource 协议。(在我看来,这个解决方案比第一个更优雅,但我显然是在重新实现 UITableViewController)。
3- 在 D 类中创建一个 UItableViewController 来代表 D 管理 tableView。
4- 使 D 成为 UITableViewcontroller 而不是 A 的子类,并在 D 中创建类型 A 的数据成员来管理 D 工作的 A 部分。
你认为最好的方法是什么?将 A 转换为协议不是一种选择。
谢谢你。