如何防止在objective-c中使用除我的自定义方法之外的其他init方法

Gre*_*reg 1 iphone objective-c init initwithstyle ios

背景 - 在我的iPhone应用程序中,我有一个自定义的UITableViewController - 我将通过将现有的"(id)initWithStyle:(UITableViewStyle)样式"方法扩展到扩展的自定义方法来传递一些必需的配置.

问题 - 确保此自定义控制器类的用户只能调用我的自定义init方法而不是initWithStyle或任何其他init方法的最佳方法是什么?

Joh*_*lph 6

我通常记录这个并[self doesNotRecognizeSelector:_cmd]调用不打算使用的init方法.

结合使用,标记方法已弃用(请参阅如何将函数标记为在iPhone Objective C头文件中弃用?)可防止运行时出现并在编译时向您发出警告.