我刚刚在一个应用程序中实现了iAd,其中有几个不同的UIViewControllers.
我在每个- (void)bannerViewDidLoadAd:(ADBannerView *)banner
和- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
中都有委托方法来显示和隐藏横幅,同时还有一个在viewDidLoad.
我是通过让第一个UIViewController
中的所有内容工作,然后将代码复制到其他每个控制器,以及ivar
声明,属性等来实现的。
这不可能是正确的。每次换一个,我都要改变它们。我的问题(最后!)是:有没有办法编写这些方法一次,以便所有类都可以访问它们?
谢谢!
答案 0 :(得分:0)
如果子类化没有意义,我建议创建一个c函数。
如果此功能伴随其他相关功能,请将其放在带有亲属的库中。如果列表变长,那么班级可能是更好的选择。
如果此函数是独立的并且特定于一个应用程序/项目,那么只需创建一个声明所有这些奇数位的文件(如果它们必须在多个翻译中重用)。如果位文件非常大,则可能存在一些设计问题。
有些人可能会推荐一种objc类别实例方法。我通常会避免使用类别,因为错误的可能性不必要地高。如果未引用C和C ++函数/类型,它们将被链接并轻松剥离。如果没有类别,则不要链接,并且不得剥离它和方法中使用的符号。
如果两者在概念上(或物理上)绑定,你可以将它作为你的单身人士的实例方法。否则,我建议将它们分开。