2016-11-06 8 views
0

Я использую Typhoon Framework для инъекций зависимостей в iOS.Объект подкласса возвращает nil - Typhoon

У меня есть два класса класса A и класс B. Класс B является подклассом класса A. Класс A является синглетным.

- (id)classAObject{ 
    return [TyphoonDefinition withClass:[ClassA class] configuration:^(TyphoonDefinition *definition){ 
      definition.scope = TyphoonScopeLazySingleton; 
     }]; 
} 

- (id)classBObject{ 
    return [TyphoonDefinition withParent:[self classAObject] class:[ClassB class] configuration:^(TyphoonDefinition *definition) { 

}]; 
} 

В классе B, я наследующий класс А.

@interface Class B: Class A{ 
} 

всякий раз, когда я пытаюсь получить classBObject, я получаю ноль.

@interface classB:NSObject{ 
} 

Но когда я наследую от NSObject, я получаю значение.

что я делаю неправильно здесь?

Благодаря

+1

Это действительно странно, но я написал тот же код, и он работает –

+0

Можете ли вы показать код, в котором вы получаете классы из сборки –

+0

В классе C я пытаюсь получить доступ к классу B, id object = [_assembly classBObject] ; // сборка не ноль. Помогает ли это? –

ответ

0

В моем базовом классе, я использую следующий код, который вызывает проблему.

+ (id)allocWithZone:(NSZone *)zone { 
@synchronized(self) { 
if (sharedManager == nil) { 
sharedManager = [super allocWithZone:zone]; 
return sharedManager; // assignment and return on first allocation 
} 
} 
return nil; // on subsequent allocation attempts return nil 
} 

Это сработало, когда я удаляю вышеуказанный код.

Смежные вопросы