AppDelegate のさまざまなクラスに共通する多くのメソッドと定義を使用して、iOS プロジェクトを支援しています。したがって、これらの各クラスの .h ファイルで、#import "AppDelegate.h" を使用します。AppDelegate をインポートする別のクラスに AppDelegate を既にインポートしているクラスの 1 つにアクセスする必要があるまで、これは問題なく機能します。この時点で、AppDelegate の Duplicate Interface Definition エラーが発生します。
わかりました、それは公平に思えます。インポートするファイルに既に AppDelegate をインポートしているため、AppDelegate は 2 つの異なる場所からインポートされています。AppDelegate 行を削除すると、すべて問題ありません。
しかし、AppDelegate をインポートする必要がある 2 つのクラスをインポートする必要がある場合はどうなるでしょうか。
頭を包み込もうとしている非常に具体的な問題があり、これに関係する何かが原因であることはわかっていますが、何が原因かわかりません。したがって、この種のインポートをどのように処理する必要があるかを理解し、他のすべてを整理して、これが私の問題を解決することを願っています。したがって、これをより具体的に言えば、次のようになります。
ClassA.h、ClassB.h、および ClassC.h があります。すべて #import "AppDelegate.h" があります。ClassA で #import "ClassB.h" を使用する必要がある場合は、ClassA から #import "AppDelegate.h" 行を削除します。すべてがスムーズに機能します。しかし、"ClassC.h" を ClassA に #import する必要があり、ClassB と ClassC に "AppDelegate.h" をインポートする必要がある場合はどうなりますか?
編集:
上記で説明した正確なシナリオをクリーンなプロジェクトで試してみたところ、問題なくビルドされたので、別の何かが働いています。しかし、私が確実に言えることは、この問題がこのプロジェクトで以前に発生したとき、それは AppDelegate の重複したインターフェイス定義であり、 #import "AppDelegate.h" 行を削除すると、エラーはなくなりました。他のインポートされたファイルを介して AppDelegate.h メソッドと列挙型にアクセスできました。