Поскольку Objective-C опирается на стандартную инфраструктуру C, в которой каждый модуль компиляции (.m
) компилируется отдельно, а затем все они связаны друг с другом.
Это означает, что на этапе статической проверки типов компилятора Objective-C потребуются только файлы .h
, чтобы узнать характеристики объявленных классов (например, сигнатуры методов), но просто чтобы убедиться, что все используется как есть. предполагается, и именно поэтому вы #import
их в других исходных файлах, которые требуют того, что вы объявили внутри заголовка.
если у вас есть A.h/.m
и B.h/.m
, которые используют A, вы можете думать о заголовочном файле как о контракте: «если вы хотите использовать A, я свяжу его двоичный код в конце фазы компиляции, что A может предоставить описание, описанное в этом заголовочном файле, и это единственное, что вам следует знать "