Если это группа объектов, которые должны быть общими для всего приложения, и вы хотите уклониться от глобальных переменных, то я думаю, у вас есть один хороший вариант:
Создавая и сохраняя коллекцию(это должен быть NSMutableArray
, редактируемая версия NSArray
) в вашем делегате приложения, он может быть доступен везде:
//MyAppDelegate.h
@property (nonatomic, retain) NSMutableArray *_editableArray;
//MyAppDelegate.m
- (void)applicationDidFinishLaunching {
_editableArray = [[NSMutableArray alloc] init];
// Add objects if you'd like
}
И тогда вы можете получить к нему доступ где угодно, например:
// In other classes
((CastToYourAppDelegateClass *)[NSApp delegate]).editableArray;
Имейте в виду , что если вы собираетесь обращаться к этому массиву / редактировать его в любом фоновом потоке (или использовать GCD), то вам необходимо убедиться, что доступ осуществляется правильносинхронизированы.(Вы планируете это сделать?)