atomicobject / objection

A lightweight dependency injection framework for Objective-C
http://www.objection-framework.org
MIT License
1.85k stars 223 forks source link

Injecting object with protocol and superclass #85

Open WiesnerPeti opened 9 years ago

WiesnerPeti commented 9 years ago

Excuse me if this issue was reported before (tried to check all the open or closed issues) or this issue is due to my lack of understanding of DI.

I'm trying to bind a class to a protocol like this (ViewController conforms to ViewInterface):

[module bindClass:[ViewController class] toProtocol:@protocol(ViewInterface)];

I also have an object, that has a property like this:

@property (nonatomic, strong) UIViewController<ViewInterface>* viewController;

This object also registers for property injection:

objection_requires(@"viewController")

My problem: The viewController won't be injected, because the FindClassOrProtocolForProperty static function in JSObjectionUtils tries to search for a protocol of UIViewController and not ViewInterface.

Is it a bug, or just the result of wrongly using the framework?

Thank you for the answer in advance!