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

问题描述 投票:1回答:2

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

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

iphone objective-c ios init initwithstyle
2个回答
3
投票

您可以覆盖不想使用的init方法,并在那里引发异常。

您也可以覆盖它们并使用指定的初始化程序初始化它们。

此外,您应该在文档中指定它。


6
投票

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

结合使用,标记不推荐使用的方法(请参阅qazxsw poi)可以防止运行时出现意外,并在编译时向您发出警告。

© www.soinside.com 2019 - 2024. All rights reserved.