#include или #import <objc / runtime.h>? - PullRequest
       60

#include или #import <objc / runtime.h>?

4 голосов
/ 28 февраля 2012

Для приложения для iPhone я должен #include или #import и почему?

Я видел, как это делается в обоих направлениях, например, # import & # include.

Ответы [ 3 ]

10 голосов
/ 28 февраля 2012

Если в заголовочном файле есть традиционные , включающие охранники , то, что вы используете, действительно не имеет значения, это скорее стилистический выбор. Если вы используете #import вместо #include, возможно, будет крошечное повышение производительности, но я сомневаюсь, что это будет заметно, поскольку большинство компиляторов в наши дни достаточно умны, чтобы распознавать встроенные средства защиты и соответственно оптимизировать.

Если, с другой стороны, файл заголовка не включает защиту для включения, то вы всегда должны использовать #import, поскольку #import гарантирует, что заголовок будет включен только один раз - если вы случайно #include дважды воспользуетесь таким заголовком, вы почти наверняка получите поток ошибок компилятора о переопределениях и т. д.

Поскольку большинство заголовков Objective-C (особенно те, которые поступают из среды выполнения Objective-C или заголовков Какао) не имеют защитных элементов, вы должны использовать #import при их включении. При включении стандартных заголовков библиотеки C или заголовков из сторонней библиотеки не имеет значения, какой вы выберете - выберите один стиль и будьте последовательны.

6 голосов
/ 28 февраля 2012

используйте #import. преимущество заключается в том, что он не «повторно включает» файлы, если они уже были включены.

5 голосов
/ 28 февраля 2012

Всегда используйте #import - это гарантирует, что один и тот же заголовочный файл никогда не будет #include 'd дважды.

...