Впрыскивание синглетонов с использованием тайфуна, дающего несколько экземпляров

У меня есть сборка следующим образом, и это начнется с plist

@implementation classAAssembly
- (id)classA {
    return [TyphoonDefinition withClass:[classA class] configuration:^(TyphoonDefinition *definition) {
               definition.scope = TyphoonScopeSingleton;
           }];
}

при загрузке приложения это создает экземпляр и внедряется в соответствующие места

тогда у меня есть некоторые статические методы должны использовать это, поэтому я попытался, как показано ниже

+ (void)staticMethod {
      classAAssembly *assembly = [[classAAssembly new] activate];
      classA *classA = [assembly classA];
}

Проблема в том, что когда я делаю это, это дает новый экземпляр, то, что я ожидаю, это тот же экземпляр, который создается при загрузке приложения.

любая помощь будет оценена.

1 ответ

Вы создаете новую сборку выше. Что вам нужно сделать, так это получить дескриптор того, который был создан с использованием интеграции plist. Так, например, чтобы получить доступ к сборке из вашего делегата приложения, вставьте ее в нее.

Чтобы получить доступ к сборке из статического метода, вам нужно создать статический указатель на нее:

- (void) typhoonDidInject {
    myStaticAssembly = this.assembly
}
Другие вопросы по тегам