2012-05-07 16 views
7

initWithNibName akıllıdır: iPhone yerine iPad için farklı NIB yükleme gibi şeyler yapar (pek çok insan bunu bilmese de - UIViewController.initWithNibName içinde BELİRTİLMEMEKTEDİR!).initWithNibName ile eşleşen dosya adı kuralları nelerdir? IOS'ta

Ama başka ne yapabilir? Bunun için bulduğum tek Elma dokümanlar açıklamak:

  1. Bu aramaya ve dosyaları bulacaksınız ~ ipad veya ~ adının sonuna üzerine iphone
  2. Elma o kurallara uymasından ima

Ama görüntü eşleştirme için kurallara hiçbir bağlantı yoktur ve ben de :(ilgili açık dokümanlar bulamıyorum eşleşen otomatik resmin dosya için

Kurallar içerebilir :. "farklı ELVES olsun eğer retina için Dosya adının sonuna @ 2x yazınız. (Bunun işe yarayıp yaramadığına dair bir fikrim yok).

Gerçekten aradığım şey, ARE'nin hangi kuralların kullanıldığının bir listesi. Yazdığım hemen hemen her uygulamada tekrarlanan bir çok sabit kodlama kaydederdi - eğer akıllı ad eşleşmelerinden daha fazla yararlanırsam (örneğin bir "load nib veya load portrait nib" yüklediyseniz)

+0

Harika soru!Apple'ın kendi şablon kodlarında bunu kullanamadığı için 'iphone 've' ipad 'eşleşmesi hakkında bile bir şey bilmiyordum! Bu soruyu izleyeceğim! – mbm29414

cevap

2

sizin (ana) soruya cevap, bu dosya eşleştirme için kurallar initWithNibName içindedir:

... Ancak, bir ucu adı belirtmeyen ve özel alt sınıfta loadView yöntemini geçersiz yoksa, Görünüm denetleyicisi, başka araçlar kullanarak bir uç dosyası için 'u arar. Spesifik olarak, uygun bir ada sahip bir nib dosyasını arar (.nib uzantısı olmadan) ve görünümü istediğinde, bu dosyaya yüklenir. Özellikle, aşağıdaki isimlerden biriyle ucu dosyası için (sırayla) görünür:

  1. görünümü denetleyicisi sınıf adı MyViewController olduğu gibi kelime “Kontrolör” ile bitiyorsa, bir ucu dosyasını arar Adının MyView.nib'deki gibi “Controller” kelimesi olmadan sınıf adıyla eşleşmesi.
  2. Adı denetleyici sınıfının adıyla eşleşen bir nib dosyası arar. Örneğin, sınıf adı MyViewController ise, MyViewController.nib dosyasını arar. UIViewController'ın belgelerine

nibName

altında

Ama ... Aslında NSBundle içindeki kaynakların bulunması için bazı oldukça akıllı kuralların daha var var olduğunu. Here is the documentation page describing these rules (bkz .: iOS'a Özel Aygıtlara Özgü Kaynaklar).

Bu, bize kaynakların paketlenmesine uygulanabilecek tüm değiştiricileri (ve temel deseni) açıklayan to this page'u getiriyor (bu, görüntü dosya adı eşleştirmesiyle ilgili bahsettiğiniz bağlantıdır).

+0

Yani ... bu bağlantıları okuyor ... NIB dosyaları için belirli kurallar yok mu? Tüm kaynaklar için "temel" kuralı miras alırlar (bağlantı 1), fakat ek kurallar (link2) yoktur - doğru mu? – Adam

+0

Evet, bu doğru olurdu. Ekleyebileceğim bir şey, yerelleştirmeye dayalı nib dosyalarının "akıllı" yüklemesidir. Bu gerçekten ilginç bir konu olduğundan, daha fazla bilgi ekleyebilecek herkes gerçekten hoş karşılanırdı. – Alladinian