Суперглобальные в Objective-C и iOS

Я пытаюсь добавить в свое приложение какой-нибудь суперглобаль. Он будет хранить только небольшое целое число, но мне нужно, чтобы он был доступен из любого места в моем приложении.

Я знаю, что вы можете использовать делегата для этого, но не будет ли проще, если вы просто установите суперглобальный элемент в своем приложении (конечно, это должно быть изменяемым)?

Итак, каков наилучший способ создания суперглобала в вашем iOS-приложении?

О, и я, вероятно, должен упомянуть, что я хочу, чтобы мой делегат приложения "владел" переменной.

3 ответа

Решение

Определите глобальную переменную в некотором файле реализации (.m):

int superGlobal;

тогда вы можете получить к нему доступ в любом другом файле, объявив его там:

//SomeOtherFile.m;
extern int superGlobal;

Что означает суперглобальный в этом контексте?

Это просто C... вы можете легко определить переменную в одном файле и получить к ней доступ из любого места (просто используйте что-то вроде extern int yourVariable; в этих файлах).

Я на самом деле в конечном итоге с помощью [(myAppDelegate *)[[UIApplication sharedApplication] delegate] myVariable] вместо.

Я обнаружил, что это немного проще, чем импортировать делегат и класс в каждом файле.

Другие вопросы по тегам