2011-03-17 27 views
5

Nesnelerimin bağımlılıklarını dışarıdan temin etmek için kullanıyorum. Arayüz Oluşturucu bunu yapmanıza yardımcı olan bir araçtır, ancak birden fazla uç ile çalışmasını sağlayamıyorum. Ana ucu daha fazla dosyaya bölerek, artık farklı uçlardaki nesneler arasında bağlantı kuramıyorum. Dosya Sahibi'ni kullanmak çok fazla yardımcı olmaz, çünkü yalnızca tek bir nesneyi bir uç uca aktarmamı sağlar.Bağımlılıkları çoklu uçlara enjekte etmek için Interface Builder kullanabilir miyim?

Örnek: Aşağıda

enter image description here

A ve B bir yüksek seviyeli objeler ve daha alt düzey hizmetlere C ve D bir türüdür. Tüm nesneler bir büyük uçta (ilk resim) olduğu sürece, her şey yolunda. Ancak, uçu A ve B'yi ayırmak için ayırdığımda, onları C ve D'ye bağlarken sorun yaşıyorum. (Açıkçası, iki C ve D örneği oluşturmak istemiyorum, hem A hem de B'nin aynı C ve D ile konuşmasını istiyorum. singleton kullanmadan.)

Bunu Interface Builder'da yapmak mümkün müdür? Nasıl?

cevap

2

.nib'inizdeki nesneler görünüm katmanınıza karşılık gelir, değil mi? Arşivlenmediklerinde, hizmetleriniz ile görüşünüz arasında aracılık eden seçilmiş kontrolörünüze aittirler.

Herhangi bir alt düzey hizmetler veya .nib dosyanızda arşivlenmiş her türlü bağımlılık olması gerçekten alışılmadık olurdu.

+0

Onlar Gösterim sadece değildir Ben de hazretleri denetleyicileri ve modelleri var:

NSArray* topLevelObjs = nil; NSDictionary* proxies = [NSDictionary dictionaryWithObject:self forKey:@"AppDelegate"]; NSDictionary* options = [NSDictionary dictionaryWithObject:proxies forKey:UINibExternalObjects]; topLevelObjs = [[NSBundle mainBundle] loadNibNamed:@"Main" owner:self options:options]; 

Daha konusunda ucu dosyaları: Sonra programlı şekilde ucunu yükleyin. Arayüz Oluşturucu'nun bu şekilde kullanılmak üzere tasarlanmamış olması (her şeyden sonra * Arabirim * Builder) olabilir, ancak tüm nesne grafiğini çırpmak o kadar kolay olmamıştı ki direnemedim. Benim için kalan tek sorun, hazretleri bölmektir. – zoul

+0

Haklısınız, Interface Builder bu şekilde kullanılmak üzere tasarlanmamış. Çekirdek Verilere baktınız mı? Kalibrasyon dosyalarını görünümleriniz için kesin olarak saklayın ve modeliniz için Çekirdek Verileri kullanın - çok daha mutlu olursunuz. – hooleyhoop

+0

Çekirdek Veriler burada gerçekten uygun mu? IB kullanarak veri içeren bazı OO veri tabanı oluşturmama * dikkat ediyorum, sadece nesnelerim arasındaki bağımlılıkları kurmak için kullanıyorum. 'SettingsController' gibi' SettingsWindow' ve 'Settings' modeline bağlı olarak' Settings' modeli bazı kullanıcı varsayılanlarına ve benzerlerine bağlıdır. – zoul

İlgili konular