Я помогаю проекту iOS с множеством методов и определений, общих для многих классов в AppDelegate. Таким образом, в каждом из этих классов в файле .h я использую #import "AppDelegate.h" . Это отлично работает, пока мне не нужен доступ к одному из тех классов, которые уже импортируют AppDelegate в другой класс, который импортирует AppDelegate. На этом этапе я получаю ошибку Duplicate Interface Definition для AppDelegate.
Хорошо, так что это справедливо. Я уже импортирую AppDelegate в файл, который я импортирую, поэтому AppDelegate импортируется из двух разных мест. Поэтому я удаляю строку AppDelegate, и все в порядке.
Но что происходит, когда мне нужно импортировать два класса, которым необходимо импортировать AppDelegate?
У меня есть очень специфическая проблема, которую я пытаюсь обвести вокруг себя, и я знаю, что это связано с чем-то, что связано с этим, но я не уверен, что. Поэтому я надеюсь, что если я выясню, как я должен обращаться с таким импортом, и сортировать все остальное, и надеюсь, что это решает мою проблему. Поэтому, чтобы выразить это более конкретно:
У меня есть ClassA.h, ClassB.h и ClassC.h. У всех есть #import "AppDelegate.h" . Когда мне нужно использовать #import "ClassB.h" в ClassA, я удаляю строку #import "AppDelegate.h" из ClassA. Все работает плавно. Но что произойдет, если мне также понадобится #import "ClassC.h" в ClassA, но ClassB и ClassC NEED имеют #import "AppDelegate.h" ?
EDIT:
Я попробовал точный сценарий, описанный выше в чистом проекте, и он построил отлично, так что в игре есть что-то еще. Но я могу с уверенностью сказать, что, когда эта проблема возникла ранее с этим проектом, это было дублированное определение интерфейса AppDelegate, и когда я удалил строку #import "AppDelegate.h" , ошибка исчезла, и я все еще имел доступ к методам и перечислениям AppDelegate.h через другие импортированные файлы.