我正在开发一个 View Controller ,它有一个又长又不漂亮的 View 设置方法。 为了简洁起见,此 View 设置代码已移至一个类别,仅用于 View 设置。
此类别引用原始 View Controller 中的私有(private)选择器,Xcode 显示警告:未声明的选择器“xyz:”
在我看来,我有这些选择,但没有一个看起来很好:
- 留下警告,闭上眼睛!
- 通过在头文件中声明来公开公开私有(private)选择器
- 在原始 VC 头文件中声明第二个类别,作为第一个类别的子类别
我已经选择了最后一个选项,但我仍然有这种感觉,就像我必须去大便什么的。这里的最佳移动是什么?
最佳答案
您可以在类别实现中向私有(private)方法添加声明
所以在CustomViewController+ViewSetup.m
@interface CustomViewController (private)
// declare private methods and properties here which you know exist in CustomViewController.m
@end
但总的来说,我认为您对类别所做的操作是不必要的。您可以清理原始文件中的代码,而不需要类别文件来管理和维护。更不用说如果您更改了这些私有(private)方法签名中的任何一个而忘记在类别中更改它,编译器将不会警告您,而是在您尝试调用其中一个方法时看到崩溃。
关于ios - 在使用类别拆分大类时,类别提示未声明的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24070338/