Я сделал нечто подобное, и если я не укажу полностью на ваш вопрос, вы можете создать Singelton, который мог бы действовать как некая общая база данных. Он никогда не будет инициализирован обычным способом, просто создается при первом использовании. Этот сингелтон может содержать ваш массив, и вы можете затем вызывать его из любого места, написав просто:
[SingeltonType main].sharedPhotos
Следующий пример взят из моего собственного кода, где у меня есть «Пользователь», который является владельцем приложения. Там я храню базу данных с информацией, которая будет доступна в любом месте во время выполнения.
Заголовок:
@interface User : NSObject {
Database *_storage;
}
@property (nonatomic, retain) Database *storage;
+(User*)owner;
основной файл:
#import "User.h"
@implementation User
@synthesize password = storage = _storage;
static User* _owner = nil;
+(User*)owner {
@synchronized([User class]) {
if(!_owner) [[self alloc] init];
return _owner;
}
return nil;
}
+(id)alloc {
@synchronized([User class]) {
NSAssert(_owner == nil, @"Attempted to allocate a second instance of a singleton.");
_owner = [super alloc];
return _owner;
}
return nil;
}
-(id)init {
self = [super init];
if(self != nil) {
self.storage = [[[Database alloc] init] autorelease];
}
return self;
}
Тогда я просто называю это так:
[User owner].storage // which gives me access to it
Надеюсь, это поможет! Действительно полезно, если вам нужен доступ к данным из разных мест:)
Примечание. У вас будет только ОДИН экземпляр этого объекта, и вы не сможете создать больше.