2012-06-03 15 views

cevap

8

bir uç Arşivlenmiş nesne grafiği temsil eder. Yükleyebilirsin ve bu nesne grafiği yeniden oluşturulacak. Şey, genellikle yüklü olan nesne grafiğinin programınızın halihazırda var olan nesne grafiğine bağlanmasını ister. Başka bir şeyden ayrılmak, ayrı kalmak istemiyorsun.

Yeni yüklenen nesne grafiğinin, programın nesne grafiğinin geri kalanına bağlanabilmesinin birkaç yolu vardır. Bir yol, bir NIB'de bulunan proxy nesneleri kümesidir. Uygulama nesnesi için bir tane var. Diğer bir proxy nesnesi ise Dosya Sahibidir. Proxy nesnesi, NIB'de bir temsile sahip olan ancak NIB'de gerçekte bulunmayan bir şeydir. NIB'deki diğer nesnelerden farklı olarak, NIB yüklendiğinde proxy'lerle temsil edilen nesneler oluşturulmaz, NIB yüklenmeden önce var olurlar. Proxy'ler, bu önceden var olan nesneler ile NIB'deki nesneler arasındaki bağlantılara izin verir. NIB'den gelen yeni nesne grafiği, programınızın mevcut nesne grafiğine nasıl bağlanabilir.

MainMenu NIB olağandışıdır. Uygulama başlangıcında Cocoa tarafından otomatik olarak yüklenir, bu da önceden var olan nesnelerin olmadığı (gerçekten olamaz) anlamına gelir. Bu NIB, genellikle bir uygulama koordinatının bir örneğini de içerir; Bununla birlikte, genellikle, diğer tür NIB'ler koordinat denetleyicileri içermez. (NSArrayController gibi arabulucu denetleyicileri içerirler, ancak bu farklıdır.) Daha ziyade, koordinat denetleyicileri genellikle kodda oluşturulur ve genellikle NIB'lerin yüklenmesinden sorumludur. Örneğin, bir pencere için koordinat denetleyicisi olarak bir NSWindowController kullanırsınız. Örneğin, bir pencere için koordinat denetleyicisi olarak NSWindowController kullanırsınız. Pencere bir NIB'de tanımlanacaktır. Pencere denetleyicisi, kodda başlatılacak - hangi pencere bir pencere oluşturulmasına karar verir - ve NIB yüklenir. NIB'nin Dosya Sahibi de olabilir. Pencereyi ve NIB'nin üst düzey nesnelerini yönetirdi.

Dosya Sahibi'ni nil olarak ayarlıyorsanız, a) büyük ihtimalle bu noktada çok basit NIB'lerle uğraşırsınız ve b) yüklediğiniz NIB'lerden üst düzey nesnelere sızıyor olabilirsiniz.

+0

Arayüz oluşturucu sol tarafında 2 bölümleri var. Yer Tutucular ve Nesneler. Lest'ler, uçta bir MyView sınıfı oluşturduğumuzu söylüyor. Bu sınıf, Nesneler bölümünde görünür ve çıkış eylem bağlantılarını uç ile yapabilirim. Dosyanın sahip olduğu sınıfın MyView olması için aynı bağlantıları yapabilirdim. Bu iki durumun anlamı nedir? Teşekkürler –

+0

Bir NIB sahip olmak için bir görünüm için çok olağandışı olurdu. Ayrıca, iki farklı nesne için bağlantı kurarsınız. Sanki "Bir nesnenin özelliklerini ayarlayabilirim. Başka bir nesnenin özelliklerini de ayarlayabilirim. Fark nedir?" NIB'de gerçekte bir görünüm için bağlantılar yaparsanız, o zaman bağlanan nesnedir. Dosya sahibinin bağlantılarını yaparsanız, yüklendiğinde NIB'nin sahibi olarak belirtilen nesne, bağlı olan şeydir. Sahibi, NIB'deki nesnelerden hiçbiri olamaz. –

5

Dosyanın sahibi, bu görünüm için tüm IBOutlets ve IBActions'ı içeren dosyadır. Örneğin, bir "ViewController" sınıfınız varsa ve bir IBOutlet UIButton *button ve -(IBAction)changeViewWhenButtonPressed: (id) sender içeriyorsa, çıkışı ve eylemi bağlamanızın tek yolu, görünümün Dosya Sahibi olarak "ViewController" ayarı yapmaktır.

Sınıf Kimliğinin Dosya Sahibi ile eşanlamlı olduğundan eminim.

Ayrıca, bu bağlantıları yararlı olabilir:

What are File Owner and First Responder in iPhone SDK - xCode?

File's Owner Definitions

What is File's Owner

+0

Teşekkür ama hala seviye 1 ve i yapamazsınız:

(kalem ucu yükleme yönteminde parametre. Temelde, dosyanın sahibi sadece "sahibine" geçildi neyse nesnedir) oyu ver .. –

+0

Eğer Ken benim yorum cevap olabilir Eğer harika olurdu :) –

3

“Dosyanın sahibi”, uçtaki nesnelerin, uç dışındaki nesnelere başvurma biçimidir ve tam tersi. (Bunu yapmak için biraz daha karmaşık yollar da vardır, ancak çoğu kez kullanılmazlar.) Bunu yapmanıza gerek yoksa, dosyanın sahibini kullanmanız gerekmez.

Ana uygulama için, dosyanın sahibi Uygulama nesnesidir. Tüm uygulama mantığınız özel bir sınıftaysa ve aynı zamanda uygulamada gönderilen eylem iletilerinde “ilk yanıtlayıcı” kullanırsanız, özel bir sınıftaysa, bağlantı kurmanız gerekmeyebilir. Tamamdır.

Belge pencereniz veya popover veya başka bir şeyiniz varsa, dosya sahibi genellikle görüntülenen nesnedir ve bu nedenle buna ui ekleyebilmeniz yararlı olur. Aynı uç parçasını, her biri, o sınıfın farklı bir örneğiyle "sahip olunan" - farklı bir belge veya denetlenmiş nesne veya bir şey gibi - yükleyebilirsiniz. Hızlı cevap için

İlgili konular