Зачем хранить ссылку в делегате приложения, а не в статической переменной в самом объекте-одиночке - как это обычная практика?
Если вас беспокоят проблемы с производительностью, поскольку вы инициализируете много объектов в инициализации синглетонов, просто выполняйте ленивую инициализацию, когда требуются данные.
Хранение объекта в делегате приложения - не настоящий синглтон. Например, вы можете создать синглтон с помощью GCD.
@interface MYSingleton
+ (id)sharedInstance;
@end
@implementation MYSingleton
+ (id)sharedInstance {
static dispatch_once_t once;
static MyFoo *sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
@end
Создание множества ненужных аксессоров в каждом контроллере представления - это просто излишнее количество и пустая трата времени.