Задать вопрос
mopsicus
@mopsicus

Как правильно инициализировать singleton в didFinishLaunchingWithOptions?

Здравствуйте, не могу разобраться в чем проблема:
есть самая обычная реализация синглтона:
+ (User *)current {
    static User *singleton = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        singleton = [[User alloc] init];
    });
    return singleton;
}


при вызове в didFinishLaunchingWithOptions зависает на dispatch_once(...)
если перенести в viewDidload, то все норм

Подскажите, что как изменить чтобы заработало

Спасибо
  • Вопрос задан
  • 2349 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@s0L
Убедитесь в том, что в результате [[User alloc] init] не вызывается этот же метод current еще раз, скорее всего у вас dead lock.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы