Суперглобальные в Objective-C и iOS
Я пытаюсь добавить в свое приложение какой-нибудь суперглобаль. Он будет хранить только небольшое целое число, но мне нужно, чтобы он был доступен из любого места в моем приложении.
Я знаю, что вы можете использовать делегата для этого, но не будет ли проще, если вы просто установите суперглобальный элемент в своем приложении (конечно, это должно быть изменяемым)?
Итак, каков наилучший способ создания суперглобала в вашем iOS-приложении?
О, и я, вероятно, должен упомянуть, что я хочу, чтобы мой делегат приложения "владел" переменной.
3 ответа
Определите глобальную переменную в некотором файле реализации (.m):
int superGlobal;
тогда вы можете получить к нему доступ в любом другом файле, объявив его там:
//SomeOtherFile.m;
extern int superGlobal;
Что означает суперглобальный в этом контексте?
Это просто C... вы можете легко определить переменную в одном файле и получить к ней доступ из любого места (просто используйте что-то вроде extern int yourVariable;
в этих файлах).
Я на самом деле в конечном итоге с помощью [(myAppDelegate *)[[UIApplication sharedApplication] delegate] myVariable]
вместо.
Я обнаружил, что это немного проще, чем импортировать делегат и класс в каждом файле.