Получая ошибку «Duplicate Interface Definition», определенно нужно импортировать заголовочные файлы

Я помогаю в проекте iOS с множеством методов и определений, общих для многих различных классов в AppDelegate. Итак, в каждом из этих классов в .h файле я использую #import & quot; AppDelegate.h & quot ;. Это работает нормально, пока мне не нужен доступ к одному из тех классов, которые уже импортируют AppDelegate в другой класс, который импортирует AppDelegate. В этот момент я получаю сообщение об ошибке «Определение дубликата интерфейса» для AppDelegate.

Итак, это кажется справедливым. Я уже импортирую AppDelegate в файл, который я импортирую, поэтому AppDelegate импортируется из двух разных мест. Поэтому я удаляю строку AppDelegate, и все в порядке.

Но что происходит, когда мне нужно импортировать два класса, которые оба должны импортировать AppDelegate?

У меня есть очень специфическая проблема, которую я пытаюсь обернуть вокруг себя, и я знаю, что это вызвано чем-то, что связано с этим, но я не уверен, что именно. Поэтому я надеюсь, что смогу выяснить, как я должен справляться с этим видом импорта, и разобраться во всем остальном, и надеюсь, что это решит мою проблему. Итак, чтобы выразить это более конкретно:

У меня есть ClassA.h, ClassB.h и ClassC.h. У всех есть #import & quot; AppDelegate.h & quot ;. Когда мне нужно использовать #import & quot; ClassB.h & quot; в ClassA я удаляю #import & quot; AppDelegate.h & quot; линия от ClassA. Все работает плавно Но что произойдет, если мне также понадобится #import & quot; ClassC.h & quot; в ClassA, но ClassB и ClassC ДОЛЖНЫ иметь #import & quot; AppDelegate.h & quot ;?

РЕДАКТИРОВАТЬ:

Я попробовал точный сценарий, который я описал выше, в чистом проекте, и он прекрасно сработал, так что есть что-то еще в игре. Но я могу с уверенностью сказать, что, когда эта проблема возникла ранее в этом проекте, это было дублирующее определение интерфейса AppDelegate, и когда я удалил #import & quot; AppDelegate.h & quot; строка, ошибка исчезла, и у меня все еще был доступ к методам AppDelegate.h и перечисления через другие импортированные файлы.

Ответы на вопрос(5)

Ваш ответ на вопрос