Доступ к статическим переменным в категориях ObjC - PullRequest
2 голосов
/ 07 октября 2010

Я пытаюсь реализовать категорию существующего класса. В существующем классе есть статическая переменная. Если я пытаюсь получить доступ к статической переменной из категории, я получаю ошибка, что статическая переменная не объявлена.

Возможно ли получить доступ к статическим переменным в категориях ObjC?

1 Ответ

3 голосов
/ 07 октября 2010

Просто чтобы прояснить, Objective-C не связывает статические переменные с классами.По умолчанию статические переменные просто ограничиваются тем файлом, в котором они объявлены.

Чтобы сделать статическую переменную видимой в других файлах, добавьте объявление в соответствующий заголовочный файл с префиксом ключевого слова extern.Так, например, если вы определили следующую статическую переменную где-то в одном из ваших файлов .m

int seconds = 60;

, вы можете добавить следующее объявление в файл .h:

extern int seconds;

Затем любой файл .m, импортирующий этот файл .h, увидит статическую переменную.

...