重用多个类中的方法

时间:2010-10-26 20:31:15

标签: objective-c ios code-reuse iad

我刚刚在一个应用程序中实现了iAd,其中有几个不同的UIViewControllers.我在每个- (void)bannerViewDidLoadAd:(ADBannerView *)banner- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error中都有委托方法来显示和隐藏横幅,同时还有一个在viewDidLoad.

期间创建横幅的设置方法

我是通过让第一个UIViewController中的所有内容工作,然后将代码复制到其他每个控制器,以及ivar声明,属性等来实现的。

这不可能是正确的。每次换一个,我都要改变它们。我的问题(最后!)是:有没有办法编写这些方法一次,以便所有类都可以访问它们?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果子类化没有意义,我建议创建一个c函数。

如果此功能伴随其他相关功能,请将其放在带有亲属的库中。如果列表变长,那么班级可能是更好的选择。

如果此函数是独立的并且特定于一个应用程序/项目,那么只需创建一个声明所有这些奇数位的文件(如果它们必须在多个翻译中重用)。如果位文件非常大,则可能存在一些设计问题。

有些人可能会推荐一种objc类别实例方法。我通常会避免使用类别,因为错误的可能性不必要地高。如果未引用C和C ++函数/类型,它们将被链接并轻松剥离。如果没有类别,则不要链接,并且不得剥离它和方法中使用的符号。

如果两者在概念上(或物理上)绑定,你可以将它作为你的单身人士的实例方法。否则,我建议将它们分开。