Объявление переменных в интерфейсе или реализации? - PullRequest
0 голосов
/ 23 октября 2011

В target-c я могу объявить int или bool и т. Д. В файле .m, вне любой функции.Это позволяет мне использовать такую ​​переменную везде в классе.

Я также могу объявить такие переменные в файле .h внутри блока интерфейса, получив тот же результат.

Ну, мойвопрос: в чем разница?Есть?Или все дело в организации?

Ответы [ 2 ]

3 голосов
/ 23 октября 2011

Во втором случае это глобальная переменная, имеющая внешнюю связь.Это означает, что к нему можно получить доступ к другим единицам перевода / исходным файлам, используя ключевое слово extern.Но в первом случае это часть интерфейса, поэтому он может использоваться только функциями-членами и любыми другими интерфейсами, полученными из этого интерфейса, в зависимости от спецификатора доступа.

2 голосов
/ 23 октября 2011

В первом случае они становятся глобальными переменными в файле .m и распределяются между всеми экземплярами интерфейса.Во втором случае он будет отдельным для нескольких экземпляров.Обычный способ - объявить переменные интерфейса в интерфейсе

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