Bunu anlamak için yarım günümü kaybettim ve çevrimiçi olarak doğrudan doğru bir çözüm göremiyorum.Çerçeve projesi içinde .xib dosyası nereye yerleştirilir?
iOS CocoaTouch Framework oluşturdum. İçinde özel ve kamu dersleri var ve her şey yolunda. Ben bu çerçeve içindeki .xib dosyasını eklerken sorun olduğunu.
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/dino/Library/Developer/CoreSimulator/Devices/FEDECDC2-D4EA-441E-B53B-329A5B3DFB7A/data/Containers/Bundle/Application/78CEC01F-4C36-4143-A7D6-DDE6CCAC801B/MyApp.app> (loaded)' with name 'NUInAppMessageView''
Ben .xib dosyalar statik kütüphane içinde bulunan edilemez olduğunu duydum ama onlar gerektiğini düşünüyorum: Ben .xib dosyası ve ben alıyorum hatayı örneğini istiyorum benim çerçevesi içinde
olduğunu çerçeve içerisinde kullanılabilir.
Çerçeve hedefim daha önce "Bundle Kaynakları Kopyala" içeriyor ve bunu .xib dosyası, framework projesinde oluşturduğumda otomatik olarak ekledi.
Ben kaynaklar ayrı eklenmelidir birkaç yerde okudum. hedef hedef ancak yeni hedefler oluştururken "paket" seçeneği yok ve bunun eski statik kitaplık günlerini oluşturduğuna inanıyorum.
NSBundle * frameworkBundle = [NSBundle bundleForClass:[self class]]; // fine (not nil)
NUInAppMessageView *view = [[frameworkBundle loadNibNamed:@"NUInAppMessageView" owner:self options:nil] firstObject]; // <-- CRASH
Ben daha metot çağrıları içine bu kırmaya çalıştı ve Nib kendisi yaratılmış oluyor düşündüm:
Bu
I (framework içinde) görüşümü başlatmak için kullanıyorum kodudurUINib *nib = [UINib nibWithNibName:@"NUInAppMessageView"
bundle:frameworkBundle]; // fine (not nil)
NSArray *objects = [nib instantiateWithOwner:self options:nil]; // <-- CRASH
Artık fikirlerim yok. Temiz, türetilmiş verileri silme projesi ile denedim, ancak işi görmüyorlar.
Burada bir şey mi özlüyorum?
Neyi yanlış yaptığınızı bilmiyorum, böylece indirip inceleyebileceğiniz bir örnek proje oluşturdum. Swift dilinde yazılmış, ama bu çok fazla bir şey yapmamalıydı. çok az kod olduğu gibi. :) https://github.com/mattneub/FrameworkWithNib – matt
Kodunuzla benimki arasındaki tek açık fark, bu ipucunu, çerçeve kodunun içinden değil, ana koddan yükledim, fakat bu sadece bir kazaydı; Fark yaratmıyor. Ben sadece yeniden yazdım ki, ipucunu çerçeve kodundan yükledim ve gayet iyi çalışıyor. – matt
@matt Her şeyi siler ve taze .xib oluşturacağım. Xcode, önbelleğe alınmış ayarlarla bir yere karışmış olabilir. Teşekkür ederim. – vale4674