背景 - 在我的 iPhone 应用程序中,我有一个自定义 UITableViewController - 我将通过将现有的“(id)initWithStyle:(UITableViewStyle)style”方法扩展为扩展的自定义方法,将一些必需的配置传递给它。
问题 - 确保此自定义控制器类的用户只能调用我的自定义 init 方法而不是 initWithStyle 或任何其他 init 方法的最佳方法是什么?
背景 - 在我的 iPhone 应用程序中,我有一个自定义 UITableViewController - 我将通过将现有的“(id)initWithStyle:(UITableViewStyle)style”方法扩展为扩展的自定义方法,将一些必需的配置传递给它。
问题 - 确保此自定义控制器类的用户只能调用我的自定义 init 方法而不是 initWithStyle 或任何其他 init 方法的最佳方法是什么?
我通常对此进行记录并[self doesNotRecognizeSelector:_cmd]
调用不打算使用的 init 方法。
同时,将方法标记为已弃用(请参阅如何在 iPhone Objective C 头文件中将函数标记为已弃用?)可防止运行时意外并在编译时向您发出警告。
您可以覆盖您不想使用的 init 方法,并在那里引发异常。
您还可以覆盖它们并使用指定的初始化程序进行初始化。
此外,您应该在文档中指定它。