До недавнего времени я использовал синтезаторный синглтон Мэтта Галлахера, чтобы делать то же самое, что вы упоминаете.
Однако недавно я перевел свой проект на использование ARC, поэтому настройка синглтона несколько упростилась.Теперь у меня есть:
static MMPersistentStoreController *sharedMMPersistentStoreController = nil;
+ (MMPersistentStoreController *)sharedMMPersistentStoreController {
if (sharedMMPersistentStoreController == nil)
{
sharedMMPersistentStoreController = [[self alloc] init];
}
return sharedMMPersistentStoreController;
}
Я думаю, что это довольно стандартный подход.Конечно, это лучше, чем передавать объект повсюду.
Что касается альтернатив, я думаю, вы могли бы synthesize
это как property
вашего делегата приложения и затем получить к нему доступ через UIApplication
.
При первом подходе это статический экземпляр, созданный объектом класса MMPersistentStoreController
.С последним, экземпляр является ivar
объекта, который будет существовать только один раз в вашем приложении.