title: iOS Typhoon Framework: use parent definition with same selector name causes forever loop
body: <p>I want to use some default assembly with few definitions with few default property injection. This assembly may be like:</p>
  
  <pre><code>@implementation AssemblyA
  
  - (UIViewController *)viewController {
      return [TyphoonDefinition withClass:[UIViewController class] configuration:^(TyphoonDefinition *definition) {
          [definition injectProperty:@selector(title) with:@"TitleA"];
          [definition injectProperty:@selector(output) with:[self presenter]];
          //other injections
      }];
  }
  
  - (Presenter *)presenter {
      return [TyphoonDefinition withClass:[Presenter class] configuration:^(TyphoonDefinition *definition) {
           [definition injectProperty:@selector(view) with:[self viewController]];
      }];
  }
  
  @end
  </code></pre>
  
  <p>Next I make <code>AssemblyB</code> (subclasses from <code>AssemblyA</code>) with same definition name and want to change <code>UIViewController</code> class (and maybe few new property injections):</p>
  
  <pre><code>@implementation AssemblyB
  
  - (UIViewController *)viewController {
      return [TyphoonDefinition withClass:[LoginViewController class] configuration:^(TyphoonDefinition *definition) {
          definition.parent = [super viewController];
          //other injections
      }];
  }
  
  @end
  </code></pre>
  
  <p>In this case Typhoon framework entered in forever loop.</p>
  
  <p>For resolve this issues I use several solutions:</p>
  
  <ol>
  <li>Just rename definition name in <code>AssemblyB</code> (For this options all definitions, which use original <code>-viewController</code> will be not use new, for example <code>-[AssemblyA presenter]</code> will be injected with original <code>-viewController</code>);</li>
  <li>Don't use definition.parent and copy/paste all injection from <code>-[AssemblyA viewController]</code> (copy/paste - bad solution)</li>
  </ol>
  
  <p>Maybe you can explain me how best solution for this case, ideally for me - if <code>definition.parent = [super viewController]</code> will be work.</p>