Импорт в .h против .m - PullRequest
       1

Импорт в .h против .m

1 голос
/ 16 августа 2010

Есть ли разница между импортом чего-либо (например, #import "JSON.h") в заголовочный файл и файлом реализации?

Ответы [ 2 ]

4 голосов
/ 16 августа 2010

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

1 голос
/ 16 августа 2010

Я думаю, что если вы сделаете это в заголовочном файле, вы впоследствии избавитесь от некоторых проблем, если будете ссылаться на класс, определенный в импортированном файле.

Другими словами, если вы импортируете «JSON.h» в заголовочный файл и есть класс JSON (гипотетически), который вы будете использовать в своем заголовочном файле (в интерфейсе), тогда это избавит вас от необходимости выполните директиву @class вверху. Тогда ваш файл реализации также будет в порядке, поскольку он будет импортировать файл заголовка, который сам импортировал файл "JSON.h"

В принципе, я думаю, что это будет аккуратнее и будет больше похоже на target-c, если вы импортируете необходимые файлы в файл интерфейса (.h). Как вы, наверное, заметили, интерфейсные файлы обычно короткие и лаконичные, что позволяет вам быстро взглянуть на то, что представляет собой определенный класс и что он делает. Если вы импортируете свои файлы туда, вы также сможете увидеть, на какие файлы / классы он опирается, сохранив файл реализации (.m) для фактического «мяса».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...