0

こんにちは、事前に助けてくれてありがとう。検索してみましたが、やろうとしていることは一般的ではないようです。私の質問について話している別の投稿がある場合は、リンクしてください。

まず、2 つのクラスがあります。名前をシンプルにするために、一方を Controller と呼び、もう一方を AppDelegate と呼びます。コントローラーは静的ライブラリーです。AppDelegate は、以下を使用してコントローラーのインスタンスを作成します。

*注意: .h ファイルで _controller を既に宣言しています。

_controller  = [[Controller alloc] initWithAppDelegate:self];

私がやりたいことは、コントローラーから AppDelegate クラスのメソッドを呼び出すことです。controller.h クラスの関連コードは次のとおりです。

@interface
{
  id _appDelegate;
}

-(id) initWithAppDelegate:(id)appDelegate;

そしてcontroller.mで

-(void)someMethodName
{
  [_appDelegate method];
}

私が抱えている問題は、メソッドを呼び出すことができないということです。他にもいくつかのメソッドを呼び出すことができますが、AppDelegate 内で作成したカスタム メソッドは呼び出すことができません。ID を AppDelegate に置き換えようとしましたが、AppDelegate をインポートできないようです。インポートできない理由をある程度理解しています。

この方法でプロジェクトを作成する理由は、さまざまなデバイス用に設計された UI を持つアプリケーションでコントローラー コードを再利用したいからです。不明な点がある場合、またはさらに詳しい情報が必要な場合は、お気軽にお問い合わせください。

ありがとう。

4

2 に答える 2

0

コントローラーには、アプリのデリゲートまたはそのメソッドに関する知識がありません。プロトコルを使用してインターフェイスを宣言する必要があります。

@protocol AppDelegateMethods
- (void)method;
@end

//Then replace your current id with     
id <AppDelegateMethods>
于 2013-08-25T15:42:41.547 に答える