我正在构建一个自定义视图控制器容器并确定使用哪个来为我的孩子提供视图控制器属性,类似于 UINavigationController 获取视图控制器的标题属性以及左右栏按钮项。各自的优缺点是什么?请注意,我已经看到了更多使用的类别方法,例如在优秀的 View Deck Controller ( https://github.com/Inferis/ViewDeck ) 和一堆其他组件中
EDIT viewDeck 和其他控制器使用关联对象和类别来实现这一点。
我正在构建一个自定义视图控制器容器并确定使用哪个来为我的孩子提供视图控制器属性,类似于 UINavigationController 获取视图控制器的标题属性以及左右栏按钮项。各自的优缺点是什么?请注意,我已经看到了更多使用的类别方法,例如在优秀的 View Deck Controller ( https://github.com/Inferis/ViewDeck ) 和一堆其他组件中
EDIT viewDeck 和其他控制器使用关联对象和类别来实现这一点。
我不确定我是否会使用。我想我会创建一个具有属性的基本视图控制器类,然后让你的所有子视图控制器都从这个类继承。类别可以包含方法但不能包含存储,因此没有 ivar 或属性(具有支持 ivar)。
我建议不要使用类别:将使用类别的库/框架添加到 XCode 项目时存在许多 XCode/LLVM 编译器问题(请参阅https://developer.apple.com/library/mac/#qa/qa2006 /qa1490.html )。在我看来,协议可以干净地处理这类事情。