0

以下は私のセットアップです:

  • Controller(.h/.m)
  • ConnectionManager(.h/.m) - AFNetworking を使用してリクエストを送信します
  • RequestHandler(.h/.m) - ビルド リクエスト パラメータ
  • KeyManager(.h/.m) - データベースへの書き込み

KeyManager からのデータを含むリクエストをサーバーに送信する必要があります。

ここで、リクエストは の AFNetworking を使用して送信されConnectionManagerます。すべてのリクエスト パラメータとリクエストの URL は、RequestHandler

しかし、問題はリクエストを構築するためです。コントローラーからリクエストされたデータがいくつかあり、Controller内部を初期化するRequestHandlersとエラーがスローされますコントローラータイプが見つかりません

Controller-> ConnectionManager-> RequestHandler-> Controller-> ConnectionManager->サーバー

どうすればこれを解決できますか? また、クラスの現在のインスタンスを別のクラスの新しいインスタンスに渡すにはどうすればよいですか?

4

2 に答える 2

2

この種の循環定義を解決するための最良のオプション#importは、ファイル内でのみディレクティブを使用し、.m代わりにファイル内で使用することです。@class.h

したがって、基本的に、クラス Y の API でクラス X への参照が必要な場合は、Yh に を追加@class Xし、次に にY.mを追加します。#import X

@classシンボルを定義するだけです。基本的に、コンパイラに「私を信じてください。後で説明します」と伝えます。#import次に、そのクラスの実装で使用することにより、約束を守ります。

これで問題が解決するはずです。

于 2013-08-07T14:22:42.070 に答える