Bug ini telah membuat saya gila sejak saya mulai menggunakan Xcode (4.6.3). Setiap kali saya mencoba menautkan item Storyboard ke kode saya, saya mendapatkan kesalahan:
Tidak dapat menemukan informasi untuk kelas bernama ViewController.
Ini terjadi dengan kelas khusus juga. Saya sudah mencoba metode seperti:
- Menghapus data delegasi.
- Menghapus dan menambahkan kembali kelas.
- Mulai ulang Xcode.
- Menginstal ulang Xcode.
Saya tidak bisa ctrl-drag untuk membuat koneksi di salah satu proyek saya apa pun kelasnya. Masalah yang sama terjadi dengan aplikasi template baru. Jika saya mengetikkan kode secara manual dan kemudian ctrl-drag, saya dapat membuat koneksi yang berfungsi, tetapi saya tidak dapat menambahkannya secara otomatis. Tidak ada yang saya dapat temukan sejauh ini di Internet telah membantu. Ada petunjuk?
NSLog()
keviewDidLoad:
Jawaban:
Apa yang memecahkan masalah ini bagi saya sebenarnya menghapus kelas dari proyek.
Langkah:
Ini sepertinya memaksa Xcode untuk menghubungkan kelas kembali ke storyboard.
Catatan: bagi saya yang berikut ini tidak berfungsi:
Saya pikir ini adalah bug di pihak Apple
sumber
Jika ada yang masih frustrasi dengan ini, ada trik untuk membuat semuanya berfungsi.
Apa yang saya lakukan secara manual memasukkan outlet ke kelas saya, misalnya
@IBOutlet weak var someView: UIView!
:, dan seret dari kode ke tampilan di IB atau storyboard. Setelah ini, saya dapat menyeret dari IB / Storyboard ke kelas saya untuk membuat koneksi, asisten editor mengenali kelas dalam "Otomatis", dll ...Bekerja setiap saat.
sumber
Bagi saya menghapusnya dari keanggotaan target Anda di kolom kanan dan menambahkannya lagi berhasil
sumber
Kadang-kadang Xcode tidak karena VC tidak mereferensikan file kelas. Solusi sederhana untuk ini adalah:
tulis properti secara manual seperti yang diberikan.
Ini akan membuat tanda tautan kosong sebelum @IBOutlet , buka proyek Anda di asisten editor lalu klik tanda tautan dan seret ke tampilan yang ingin Anda sambungkan (saya telah terhubung dengan TableView). dan itu saja. Selamat menikmati Coding !!!
sumber
Saya baru saja mengalami masalah ini pada April 2017 dengan Xcode 8
Cukup membuat outlet melalui kode dan kompilasi memperbaikinya. misalnya:
Anda harus mencintai Xcode ...
Sunting: Masih terjadi di Xcode 9
sumber
langkah-langkah berikut ini berfungsi untuk saya, harap itu juga berfungsi untuk Anda
1- Anda harus membuka kembali proyek Anda setelah menutup Xcode.
2- Tunggu pengindeksan file proyek
3 - Periksa apakah itu berfungsi atau tidak
4 - Jika masih tidak bekerja ikuti langkah 5, jika tidak senang untuk Anda :)
5- Bersihkan dan Bangun target proyek Anda
sumber
Saya mencoba segalanya dan itu tidak berhasil, jadi bagi saya yang berhasil adalah:
Semua pengendali pandangan saya tidak dikenali, jadi menghapus semua file dan menambahkan kembali bukanlah pilihan karena ini adalah proyek besar.
sumber
Bagi saya, yang berikut ini berhasil:
Lakukan 'clean' dan 'clean build folder' (tekan 'option' pada menu Product untuk mendapatkan perintah 'clean build folder'
Hentikan Xcode
Di terminal, buka folder data yang diturunkan:
(/ Pengguna // Perpustakaan / Pengembang / Xcode / DerivedData)
Hapus dir data turunan untuk proyek Anda.
Lambaikan ayam mati di udara
Mulai Xcode
sumber
Saya harus melakukan kombinasi dari beberapa jawaban sejauh ini:
(Klik tombol kuning di kiri atas controller tampilan di storyboard -> pergi ke inspektur identitas (opsi + perintah + 3) -> hapus nama kelas kustom di atas)
(Klik kanan file -> hapus -> hapus referensi)
(Klik kanan folder tempat file itu -> "Tambahkan file ke [proyek]")
sumber
Jika orang-orang mencoba hal-hal di atas dan masih ada yang tidak berhasil, trik aneh yang berhasil bagi saya adalah menambahkan outlet di ruang putih. Ini berfungsi jika tidak ada baris lain langsung di atas atau di bawah garis yang Anda tambahkan. Aneh, tapi berhasil!
sumber
Apa yang berhasil bagi saya adalah, alih-alih menyeret koneksi dari tombol ke kode, adalah:
setelah saya menautkan kode saya dengan cara ini, itu berfungsi normal setelahnya.
sumber
Tetap Sesuai Target!
Saya menambahkan kelas baru dengan Xib dan saya mulai melihat masalah ini dan saya menghabiskan waktu dengan baik mencari jawaban di sini dan melihat apakah ada yang membuat perbedaan.
Ketika itu terjadi, saya memiliki beberapa target di ruang kerja saya dan sering kali saya harus beralih di antara mereka.
Ternyata menambahkan file baru akan memulai indeks ulang di Xcode. Tetapi jika Anda menunjuk pada target yang salah maka pengindeksan cenderung tidak berarti dan selama tarik untuk menghubungkan Xcode tidak akan dapat menemukan kelas Anda.
Pendeknya
Langkah 1.
Pastikan Anda memiliki target yang benar sehingga pengindeksan masuk akal.
sumber
Ini bekerja untuk saya:
(tekan dan tahan tombol 'opsi' dan pergi ke " Produk " untuk mengaksesnya.
Di samping catatan, saya tidak yakin apakah ini membantu tetapi saya juga menghapus data yang diturunkan sebelum melakukan langkah-langkah di atas (preferensi Xcode> Lokasi)
sumber
Pilih ViewController di storyBoard, hapus nilai saat ini di panel Kanan / "Kelas pelanggan" / "kelas" kemudian tambahkan kembali kelas kontrol (ketik: "SampleViewController" ...), masukkan. -> Itu berhasil untuk saya
sumber
Saya mencoba semua jawaban ini, masalah bagi saya terkait dengan Xcode tidak dapat mengindeks file. Saya memperbaikinya dengan hanya berhenti dari Xcode dan membuka kembali proyek. Tentu saja saya melakukan itu setelah mencoba semua solusi di atas: p
sumber
Produk> Bersih (Command - Shift - K) memperbaikinya untuk saya!
sumber
Ini adalah langkah TERMUDAH yang saya lakukan untuk memperbaiki masalah ini.
sumber
Sebagai pengalaman pengujian saya, jika Anda menghapus kelas yang dikaitkan dalam Xcode, dan daripada menambahkan file lagi, maka masalah ini akan terjadi.
sumber
Biasanya ketika ini terjadi pada saya, saya hanya belum menyimpan kode untuk kelas. Langsung saja ke kode dan tekan cmd + s dan itu sering memperbaiki masalah dengan cara yang benar.
sumber
Hanya perlu membersihkan dan membangun kembali proyek.
sumber
Tidak ada langkah-langkah di atas yang berhasil untuk saya, tetapi saya pikir saya mungkin telah menemukan masalah. Setidaknya itu yang berhasil bagi saya, dan itu bukan bug di Xcode.
Ketika di asisten editor lihat di bagian atas jendela yang memiliki kode untuk viewController Anda. Opsi ketiga dari kanan kemungkinan mengatakan "Manual", tetapi seharusnya mengatakan "Otomatis". Setelah saya mengubah ini, masalahnya teratasi!
sumber
Saya mendapatkan masalah yang sama, "Tidak dapat menemukan kelas bernama ..." dan penyebabnya bodoh pada bagian saya setelah saya menemukan jawabannya. Pastikan Anda tidak menyeret dari item ke antarmuka - pastikan item tersebut diseret ke kelas itu sendiri
sumber
Saya mencoba SEGALA SESUATU!
Pastikan nama kelas UIViewController Anda tidak mengandung kata "Test"
Laporan Bug dikirimkan.
sumber
Saya akan mencoba untuk membuat kembali file .m dan .h yang dimaksud dan memberi mereka nama asli, bukan generik seperti "ViewController". Cobalah sesuatu yang lebih sesuai dengan apa yang Anda ingin file itu lakukan, dan diakhiri dengan View Controller (yaitu "PizzaDecoraterViewController")
Kemudian pilih ViewController yang ingin Anda sambungkan ke file-file itu. Pastikan Anda memilih ViewController, bukan hanya objek di dalamnya. Klik bilah hitam di bagian bawah (yang memiliki ikon "First Responder" dan "Exit"). Seluruh ViewController harus menguraikan warna biru. Lalu pergi ke bagian Kelas Kustom di Inspektur Identitas dan Anda akan melihat "UIViewController" berwarna abu-abu di bidang pertama. Di bidang itu, ketikkan nama file .h atau .m yang ingin Anda sambungkan (Mulai ketikkan PizzaDecorator ... dan itu akan melakukan sedikit pelengkapan otomatis). Lalu tekan ENTER.
Saat Anda membuka Asisten Editor, pastikan bahwa file yang Anda coba seret dan jatuhkan adalah, sebenarnya, file yang benar.
Jika Anda telah melakukan semua seperti yang dikatakan di atas, maka itu akan berhasil.
sumber
Ketika saya mengomentari jawaban @ ChrisHarrison, hal-hal itu tidak berhasil untuk saya, tetapi menghapus data turunan seperti pada saya membuatnya bekerja dengan menghapus data turunan seperti di https://stackoverflow.com/a/16182672/1449799
sumber
Hapus file (hanya referensi) dan tambahkan file lagi.
sumber
Nah dalam kasus saya, hal yang berhasil (ini aneh, tapi berhasil) adalah sebagai berikut:
Cobalah untuk menambahkan sumber data (mis. Ekstensi ke ViewController seperti UITableViewDataSource). Xcode akan mencoba memuat ulang ViewController. Lalu saya menulis beberapa metode protokol (pada awalnya Xcode tidak melengkapi metode secara otomatis, tetapi menuliskannya secara manual), kemudian saya menambahkan IBOutlets, dan terakhir, saya menghapus sumber data.
Contoh:
sumber
Bagi saya, tampilan yang saya tentukan kelas khusus untuk gagal dikompilasi oleh pembangun antarmuka. Itu ditandai
@IBDesignable
.Menghapus
@IBDesignable
, dan kemudian menambahkan outlet saya, dan menandainya sebagai@IBDesignable
menyelesaikan masalah dalam kasus saya.sumber
Coba hapus Data Turunan untuk proyek
sumber
coba saja ini
sumber