Нет ничего плохого в использовании предварительного объявления (т. Е. @class Foo
) в заголовочном файле для каждого класса. Вы можете сделать это, если все, что вам нужно, это чтобы каждый класс ссылался на другой. Предварительное объявление просто сообщает компилятору: «Это имя относится к классу, а фактическое объявление класса будет позже».
Как вы говорите, вы также можете использовать предварительное объявление B в A.h, а затем просто импортировать A.h в B.h. Я не думаю, что в этом есть какая-то реальная выгода, если в А.х нет других вещей, на которые вам также нужно ссылаться в Б.х.
Однако, похоже, я должен это сделать
и в xcode, и мне интересно, почему.
Если вы имеете в виду, что вы получаете ошибку при импорте A.h в B.h вместо использования прямого объявления A, пожалуйста, опубликуйте ошибку. Я не думаю, что с этим должна быть проблема. (И в любом случае проблема может быть связана с проблемой компилятора или Objective-C, а не с проблемой XCode. XCode - это просто IDE.)