Objective-C için oldukça yeni ama C# konusunda oldukça fazla deneyime sahibim. Objective-C'deki bazı bağımlılık enjeksiyon çerçevelerini incelemeye çalışıyorum. Bazı çerçevelere bakarken, Objective-C sınıfındaki kurucular/Initializers'lar açısından çok farklı bir şey buldum. Objective c başlatıcıları ile belirsizlik
i aşağıdaki gibi bir yapıcı aracılığıyla bir nesne enjekte istiyorsanız
,-(id)initWithService:(id<ServiceProtocol>)service;
elbette bu varsayılan yapıcı olmayacaktır ve bu diğer bazı yerden denir kadar kontrol buraya girmeyecektir. Bu nesne enjekte edildiğinde, varsayılan kurucu ve denetim buraya gider.
yalnızca -(id)init
.
Bu yüzden numaralı telefondan -(id)init
numaralı telefondan arama yapıp yapamayacağımı merak ediyorum.
Ya da her sınıf için iki başlatıcı yalnızca başlatıcı ile yapıcıyı yalnızca alay sırasında kullanır ve çerçeve tarafından otomatik başlatma işlemi sırasında dikkate almaz mı? Burada yazılı olarak
belirlenmiş Başlatıcı kullanmak olduğunu eğer Sadece alay aracını tatmin etmek için farklı bir şey yapıyorsun, yanlış yapıyorsun. – Avi
Dürüst olmak gerekirse, herhangi bir aracı kullanmak istemiyorum. Bu basit objektif-C sorusu. Özel init yapamazsan ne yapardın, ama sadece init yapabilirsin. – golldy
"initWithService:" [atanan başlatıcınız] (http://stackoverflow.com/a/26186421/2976878) ve belki de [init 'init'] seçeneğini yapmak istediğiniz gibi geliyor (https://craftbeercraftcode.com/2014/12/28/better-brewing-with-ns_unavailable /) bunun için varsayılan bir değeriniz yoksa. – Hamish