に私は、iOS上でDIコンテナを使用し始めていると私は、この場合にプロパティを注入する方法のアイデアを持っていない:台風注入するプロパティ新しいオブジェクト
は、我々が持っている想像:
Assembly.mを
- (ClassA *)classA {
return [TyphoonDefinition withClass:[ClassA class] configuration:^(TyphoonDefinition *definition) {
[definition injectProperty:@selector(url) with:@"http://inject:URL"];
}];
}
そして、二つのクラス
にClassA
@interface ClassA : NSObject
@property (nonatomic,readwrite) NSString *url;
@end
ClassBの
@interface ClassB : ClassA
@end
そして
ViewController.m
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
ClassB *cB = [ClassB new];
NSLog(@"%@",cB.url);
}
私は、すべてのオブジェクトが持つ注射を持って、私はClassBのことで、新しいオブジェクトを作成する場所にしたいです私のDIコンテナからのURLプロパティr(アセンブリ) はい私はViewControllerにプロパティを追加することができ、この注入は正常に動作しますが、新しいオブジェクトにプロパティを注入する必要があります。
私はすべての原則を理解していないかもしれませんが、私は尋ねるべきです。 Thx
はい、その意味合いとその仕事ですが、私はいつもこのオブジェクトをアセンブリから得るのが好きではありません。この場合、依存性注入の作業はどこにありますか? –
@ dev.nikolazなぜあなたはそれが好きですか?オブジェクトを取得するためにアセンブリ(IoCコンテナ)を使用しても構いません。だからDIは依存関係を注入するための仕組みです(あなたの場合はプロパティの依存関係のために)、設定設定を保持するIoC-containerを使います。 –
はい、そうです、これは構成設定用です))、この時点でこれは正しく答えています。大きなthx! –