Saya mencoba mengintegrasikan Janrain Engage sebagai modul kustom dengan Appcelerator Titanium. Saya telah membuat modul sampel dan menyeret folder JREngage ke modul sampel xcodeproj seperti yang ditunjukkan dalam dokumentasi Jainrain.
Sekarang saya memberikan perintah build untuk proyek ini, lalu jalankan ./build.py
dan akhirnya saya jalankan titanium run
perintahnya. Ini meluncurkan aplikasi dalam simulator dengan layar kosong dan segera crash dan melemparkan kesalahan berikut.
Menghentikan aplikasi karena pengecualian yang tidak tertangkap 'NSInternalInconsistencyException', alasan: 'Tidak dapat memuat NIB dalam paket:' NSBundle </ Users / abhilash / Library / Application Support / iPhone Simulator / 4.2 / Applications / CA167346-4091-4E16-B841-955D1D391713 / test.app> (dimuat) 'dengan nama' JRProvidersController ''
Mengapa kesalahan ini bisa terjadi?
Di
Targets -> Build Phases
Pastikan .xib ditambahkan ke
Copy Bundle Resources
, jika tidak ada maka tambahkan file .xib.sumber
coba cari tahu semuanya
dalam kode Anda, dan pastikan
XXXController
ejaannya benarsumber
initWithNibName:bundle:
metodeSaya mengalami masalah yang sama (pengecualian 'Tidak dapat memuat NIB dalam bundel: ..') setelah memutakhirkan xcode saya dari 3.2 menjadi 4.02. Sementara penerapan aplikasi saya dengan Xcode 3.2 bekerja dengan baik, itu macet dengan xcode 4 meningkatkan pengecualian yang disebutkan di atas - tetapi hanya ketika saya mencoba menerapkan ke Simulator IOS (v.4.2). Menargetkan perangkat IOS (v.4.1) bertindak juga dengan Xcode 4.
Ternyata (setelah berjam-jam sibuk mencari-cari) bahwa alasannya adalah pengaturan yang hampir "tersembunyi" di file .xib:
Kunjungi properti file .xib di pemeriksa file: Properti 'Lokasi' disetel ke 'Relatif ke Grup' untuk semua file .xib. Saya mengubahnya menjadi 'Relatif dengan proyek' dan voila: semua file .xib sekarang dimuat dengan benar di simulator IOS!
Saya tidak tahu apa alasan di balik itu untuk perilaku Xcode4 yang aneh ini, tetapi mungkin layak untuk dicoba?
sumber
Dalam kasus saya itu sangat aneh (gunakan storyboard): Untuk beberapa alasan itu berubah dari "Nama dasar file storyboard utama" menjadi "Nama dasar file nib utama" di plist.
Mengubah kembali ke "Nama basis file storyboard utama" (UIMainStoryboardFile) menyelesaikan masalah
sumber
kesalahan berarti tidak ada file .xib dengan
"JRProvidersController"
nama. periksa kembali apakahJRProvidersController.xib
ada.Anda akan memuat
.xib file
dengansumber
Menggunakan tampilan Swift khusus dalam pengontrol tampilan Objective-C (ya, bahkan setelah mengimpor
<<PROJECT NAME>>-Swift.h
file), saya mencoba memuat pena menggunakan:... tapi
NSStringFromClass([MyCustomView class])
kembali<<PROJECT NAME>>.MyCustomView
dan beban gagal. TL; DR Semua bekerja dengan baik saat memuat ujung menggunakan string literal:sumber
Dengan target build menjadi salah satu perangkat iOS saya, saya mengklik kanan file Produk (xyzw.app) dan memilih item popup Show in Finder. Itu membuka jendela dengan xyzw.app di dalamnya; Saya membuka bundel menggunakan Show Package Contents dan melihat semua file yang saya harapkan, kecuali satu file, yang dikeluhkannya, dengan huruf kapital I dan bukan huruf kecil i dalam nama (zoomieVIew.nib bukan zoomieView.nib ). Saya telah memperhatikan huruf besar I pada nama file xib, dan mengubahnya dan membangunnya kembali; tampaknya Xcode meninggalkan nama .nib yang dihasilkan seperti semula. Saya menghapus zoomieVIew.nib dalam bundel, membangun kembali, dan Xcode benar-benar membuat ulang file sebagai zoomieView.nib. Aplikasi mulai berfungsi di perangkat.
sumber
Saya mengalami masalah ini dengan storyboard dan ujungnya bernama 'bKD-J3-fhr-view-ZSR-8m-2da'.
Itu karena saya mencoba menambahkan subview ke self.view di init view controller (withCoder). Self.view belum ada.
Pindah ke viewDidLoad dan semuanya lebih baik!
sumber
Lihat proyek
Target -> Buid Phases -> Copy Bundle Resources
Anda akan menemukan xib / storyborad Anda dengan warna merah.
Hapus saja. Hapus juga semua referensi file yang hilang dari proyek.
Sekarang seret file storyboard / xib ini lagi ke ini
Copy Bundle Resources
. Ini masih akan menampilkan file dengan warna merah tetapi jangan khawatir tentang itu.Bersihkan dan bangun proyek.
Sekarang proyek Anda akan berjalan kembali dengan sukses !!
sumber
Untuk Papan Cerita
Saya mencoba setiap solusi yang diposting di sini tetapi tidak ada yang berhasil untuk saya karena saya menggunakan Storyboard dengan Swift 5.
Baru saja mulai membuat pengontrol dan Tampilan baru di aplikasi uji storyboard, yang saya temukan adalah saya kehilangan ID Storyboard Pengontrol Tampilan Saya.
Jadi inilah solusi saya, Jika Anda ingin Pergi dari ViewController A -> View Controller B
Langkah 1. Di storyboard: Pastikan ViewControllerA Anda tertanam di Pengontrol Navigasi
Langkah 2. Di storyboard: Sekarang periksa apakah Anda menyebutkan ID Storyboard untuk ViewControllerB yang akan Anda gunakan dalam kode sebagai Identifier.
Langkah 3. dan terakhir pastikan Anda mendorong pengontrol dengan cara ini di ViewControllerA Anda dengan klik Tombol.
sumber
JANGAN PUT .xib SAAT ANDA MEMASUKKAN NAMA XIB! ITU SUDAH TERSIRAT!
Jangan lakukan ini:
Melakukan hal ini:
sumber
Contoh Swift4 jika MyCustomView.swift dan MyCustomView.xib Anda dalam kerangka. Tempatkan ini di init MyCustomView :
sumber
Saya juga menemukan bahwa itu gagal ketika saya mencoba memuat XIB dengan nama seperti @ "MyFile.xib". Ketika saya baru saja menggunakan @ "MyFile" itu berhasil - tampaknya itu selalu menambahkan ekstensi. Tetapi pesan kesalahan hanya mengatakan tidak dapat menemukan MyFIle.xib dalam bundel - jika dikatakan MyFile.xib.xib, itu akan menjadi petunjuk besar.
sumber
Bekerja pada Xcode 4.6.3 dan melokalkan file NIB saya, saya juga mengalami masalah ini.
Bagi saya tidak ada yang membantu selain mengubah "Document Versioning" di File Inspector menjadi Deployment 5.0, bukan 6.1.
sumber
Itu terjadi ketika Anda mengganti nama file nib. Jika Anda sudah, buat nib baru (artinya salin isi file nib saat ini ke nib baru), hapus file nib lama dan itu akan menyelesaikan masalah Anda.
Sunting: Dengan Xcode baru mulai versi 4.6.3, Jika Anda mengganti nama (dengan fitur refactor) kelas Controller, itu akan mengganti nama file nib juga dan Anda tidak perlu khawatir tentang masalah pemuatan nib.
sumber
Saya baru saja mendapat pengalaman menarik menggunakan Xcode 6.3.
Saya terus mendapatkan kesalahan ini juga, meskipun mencoba semua yang biasanya Anda pikirkan dengan ejaan, keanggotaan target, dll. Seperti yang disarankan di atas. Saya juga mencoba membersihkan, menghapus data yang diturunkan, dan juga menghapus aplikasi dari simulator beberapa kali untuk memastikan bundel dibuat dengan benar tetapi tidak berhasil.
Akhirnya, mengikuti jawaban Brian Michael Bentley, saya akhirnya memutuskan untuk memeriksa file .app saya di folder simulator saya di HD saya. Saya menemukan bahwa semua ujung pena saya ada di sana tetapi dengan abc ~ ipad.nib alih-alih abc.nib yang diharapkan. Saya secara manual mengganti nama semua file ini untuk menghapus bagian ~ ipad, dibangun dan berhasil!
Mencoba untuk melihat mengapa ini telah ditambahkan dengan kata kunci ~ ipad, saya melihat pengaturan proyek saya dan sebenarnya, di tab General> Deployment Info saya, saya hanya memilih iPad. Saya mencoba menjalankan simulator iPhone. Saya percaya bahwa di masa lalu, Xcode akan memberikan kesalahan yang menunjukkan bahwa biner tidak mendukung iPhone dan Anda tidak akan berhasil menjalankan aplikasinya.
Saya menghapus aplikasi dari simulator dan melakukan hal yang sama lagi - lagi hanya dengan iPad yang didukung. Kali ini, .app berisi abc ~ iphone.nib DAN abc ~ ipad.nib untuk setiap storyboard yang diharapkan dan berjalan dengan baik di simulator iPhone. Sekali lagi - Jika kami memilih iPad hanya di pengaturan Deployment Info kami, itu seharusnya tidak berjalan di iPhone Simulator. Ini adalah bug Xcode.
Jadi, ada beberapa perilaku yang tidak konsisten di sini dari pihak Xcode dan sayangnya ini adalah bug yang terputus-putus dan ini mungkin sulit untuk direproduksi, tapi saya taruh ini di sini agar dapat membantu orang lain di masa mendatang.
sumber
Jika masalah yang sama ini tidak berhasil, jadi saya menemukan sesuatu yang aneh dengan data turunan.
Di xcode 6.3.2 saya harus:
Di Menu XCode -> Preferensi -> Tab Lokasi -> Di Lokasi Ubah Data Berasal ke Relatif dan kemudian beralih kembali ke Default
Kemudian ujung pena terisi dengan baik.
sumber
File XIB Anda mungkin berada di luar folder proyek Anda. Ini menyebabkan tidak muncul Inspektur Target. Namun, memindahkan file XIB ke folder proyek Anda harus memperbaikinya.
sumber
Hati-hati: Xcode peka huruf besar kecil dengan nama file. Ini tidak sama "Menyenangkan" dengan "kesenangan".
sumber
Jika Anda menggunakan kerangka kerja dalam proyek Anda, Anda perlu memastikan bahwa Anda memuat dari bundel yang benar:
sumber
bagi saya, itu diselesaikan hanya dengan mengubah nama file sel saya menjadi sama dengan kelasnya.
Di Attributes Inspector (Tab ketiga di bilah sisi kanan di papan cerita):
Daftarkan sel di pengontrol tampilan Anda sebagai berikut:
tableView.register (UINib (nibName: "MyCellClass", bundle: nil), forCellReuseIdentifier: "MyCellId")
sumber
Punya masalah ini saat mengubah kode lama saya dari XCode 3x ke XCode 4 dan Mengatasinya dengan hanya mengganti nama wwwwwwww.xib menjadi RootViewController.xib
sumber
Saya mengalami masalah yang sama. Dalam kasus saya, nama ujung pena adalah "MyViewController.xib" dan saya mengganti namanya menjadi "MyView.xib". Ini menghilangkan kesalahan.
Saya juga memindahkan proyek dari XCode 3 ke 4.2. Mengubah jenis Path tidak masalah.
sumber
Juga alasannya bisa jadi file tersebut dicari di folder khusus bahasa yang salah saat Anda mengacaukan pelokalan.
sumber
Setiap kali saya refactor nama pengontrol tampilan yang ada di appDelegate saya, saya membuang waktu untuk ini. Refactoring tidak mengubah nama nib di initWithNibName: @ "MYOldViewControllerName".
sumber
Saya memiliki masalah yang sama, mengganti nama pengenal pengontrol tampilan di storyboard berhasil untuk saya.
sumber
Saya perhatikan bahwa itu mungkin terjadi jika Anda beralih antar cabang di git dan lupa untuk melakukan pembersihan. Jadi xib ada di sana dan semuanya ditemukan, tetapi versi pastinya mungkin bermasalah. Jadi untuk berjaga-jaga jangan lupa bersihkan
sumber
Pada kode di atas, jika Anda juga memberikan ekstensi file seperti "SecondView.xib", maka itu salah dan akan memberi Anda kesalahan di atas. Gunakan "SecondView" sebagai gantinya. Saya telah membuat kesalahan itu.
sumber
Ini berhasil untuk saya .. Pastikan Anda mengetik nama ujung pena dengan benar.
[[NSBundle mainBundle] loadNibNamed: @ "Graphview" pemilik: opsi mandiri: nil];
Graphview (nama ujung pena)
sumber