Для справки, static
означает разные вещи для разных людей / языков. Objective-C - это, главным образом, C плюс куча улучшений синтаксиса, ключевое слово static
в Objective-C имеет то же значение, что и в C, что относится к видимости символа в отношении ссылок. Это немного отличается от того, как в Java и C # используется слово static.
Objective-C не имеет синтаксиса для объявления «статических» (на языке Java / C #) или «классовых» переменных. Среда выполнения «поддерживает» их (свидетельство существования: class_getClassVariable
), но нет синтаксиса для их объявления, так что это своего рода тупик. (Если бы мне пришлось угадывать, я бы поспорил, что эта функция существует во время выполнения для поддержки мостов с другими языками / средами исполнения, в которых используются статические / переменные класса.) Как и предполагали другие люди, общий способ обойти это - использовать глобальные переменные. (или статические функции (static
в смысле связи C).)