0

いくつかの異なるアプリにiAdを実装しましたUIViewControllers. 。それぞれにデリゲートメソッドがあり- (void)bannerViewDidLoadAd:(ADBannerView *)banner- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)errorバナーを表示および非表示にします。また、中にバナーを作成するセットアップメソッドもあります。viewDidLoad.

これを行うには、最初にすべてを機能させてから、宣言やプロパティなどUIViewControllerとともに、コードを他の各コントローラーにコピーします...ivar

これは正しくありえません。1つを変更するたびに、すべてを変更する必要があります。私の質問(ついに!)は、これらのメソッドを一度記述して、すべてのクラスがそれらにアクセスできるようにする方法はありますか?

ありがとう!

4

1 に答える 1

0

サブクラス化が意味をなさない場合は、ac関数を作成することをお勧めします。

この関数が他の関連する関数に付随している場合は、その親戚と一緒にライブラリに配置します。リストが長くなった場合は、クラスの方が適している可能性があります。

この関数がスタンドアロンで、1つのアプリ/プロジェクトに固有の場合は、これらの奇数ビットをすべて宣言するファイルを作成するだけです(複数の翻訳で再利用する必要がある場合)。ビットのファイルが本当に大きい場合は、いくつかの設計上の問題がある可能性があります。

一部の人々は、objcカテゴリのインスタンスメソッドを推奨する場合があります。エラーの可能性が不必要に高いため、私は一般的にカテゴリを避けます。CおよびC++の関数/タイプはリンクされており、参照されていない場合は簡単に削除されます。カテゴリを使用する場合、リンクしないでください。また、カテゴリとメソッドで使用されるシンボルを削除しないでください。

2つが概念的に(または物理的に)バインドされている場合は、これをシングルトンのインスタンスメソッドとして含めることができます。それ以外の場合は、別々にしておくことをお勧めします。

于 2010-10-26T21:03:55.890 に答える