Tidak dapat memasukkan koneksi outlet baru: Tidak dapat menemukan informasi untuk kelas yang bernama


281

Saya mendapat kesalahan pada Xcode mengatakan bahwa tidak ada informasi tentang pengontrol tampilan.

Tidak dapat memasukkan koneksi outlet baru: Tidak dapat menemukan informasi untuk kelas yang bernama

Mengapa ini terjadi?

Tangkapan layar 1


2
Saya pikir ini telah ditanyakan sebelumnya: stackoverflow.com/questions/17735182/…
Tapani

Saya cukup berhenti dari Xcode, lalu membukanya kembali. kompiler akan memuat ulang semua file dan dapat mendeteksi file yang Anda cari
Jane chicken

Periksa Anda belum memiliki outlet yang tidak terhubung dalam file controller tampilan Anda. Saya menemukan bahwa saya melakukannya. Setelah saya menghapusnya saya tidak punya masalah.
Kex

Bagi saya tidak ada solusi di atas yang berhasil. Saya harus menghapus view controller, yang saya salin dan tempel lagi di storyboard saya untuk menggunakannya kembali. Kemudian saya menyeret view controller baru di storyboard dan semuanya baik-baik saja :). Saya harap ini dapat membantu seseorang dengan masalah yang sama.
Arslan Saleem

Ini adalah BUG di XCode, dan saya tidak tahu mengapa mereka tidak memperbaikinya. Anda harus menutup XCode dan membuka kembali. Ketika Anda mencoba lagi untuk meletakkan outlet, tetapi kali ini tinggalkan sekelompok ENTER sebelum membuatnya. Anda tidak perlu menghapus apa pun atau membuang-buang waktu untuk pilihan lain ... Ini akan menyelesaikan masalah Anda.
mavesonzini

Jawaban:


692

Berikut adalah beberapa hal yang dapat memperbaikinya (dengan meningkatnya tingkat kesulitan):

  • Bersihkan proyek ( Produk> Bersih )
  • Tempel secara manual

    @IBOutlet weak var viewName: UIView!
    // or
    @IBAction func viewTapped(_ sender: Any) { }

    dan kontrol tarik ke sana. (Ubah tipe sesuai kebutuhan.) Lihat juga ini .

  • Tutup sepenuhnya Xcode dan mulai ulang proyek Anda.

  • Hapus folder Data Berasal (Buka Xcode> Preferensi > Lokasi dan klik panah abu-abu oleh folder Data Berasal. Kemudian hapus folder proyek Anda.)
  • Klik hapus di kelas, hapus referensi (bukan Pindah ke Sampah), dan tambahkan kembali. (lihat jawaban ini )

jangan lupa untuk menghapus kelas pada pengontrol tampilan sehingga langkah ini akan berhasil
reggie

8
Tidak ada langkah-langkah ini yang berfungsi untuk saya di Xcode 8.3.2. Saya harus "Tampilkan Identitas Inspektur"> membersihkan bidang "Kelas" (sorot nama kelas kustom dan hapus)> masukkan kembali nama kelas di bidang "Kelas". Xcode secara otomatis melengkapi nama kelas. Saya kemudian tekan enter.
PeqNP

Tambahkan baris alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'ke ~ / .bashrc Anda untuk menggunakan perintah ini purgederiveddatauntuk menghapus dengan satu perintah
eskimwier

Saya menemukan cara lain untuk memperbaiki masalah ini, ini terjadi pada saya ketika saya mengubah beberapa pengaturan build untuk meningkatkan kecepatan build saya. stackoverflow.com/a/50555888/2952876
Mathias Van Houtte

Saya sangat mendorong Anda semua untuk mencoba solusi saya di bawah ini. Akan patah hati mengetahui bahwa orang harus me-restart komputer mereka untuk bug yang sering muncul.
Stephen Paul

134

Atau jika tidak ada di atas yang berfungsi, ketikkan nama outlet ke dalam file terlebih dahulu @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!dan kemudian klik dan seret dari outlet di nib ke variabel yang baru saja Anda buat secara pemrograman. Itu harus bekerja tanpa kesulitan membersihkan, membangun, dan menghapus apa pun.


4
seringkali solusi yang lebih cepat daripada menghabiskan waktu untuk membersihkan, membangun, dll. terima kasih.
mohonish

1
Sangat bagus dan setelah Anda melakukan ini, Otomatis mulai muncul, terima kasih.
AmJa

1
Pertama-tama sambungkan Objek XIB Anda ke IBoutlets.Kemudian coba sambungkan batasan mereka, IBOutlets. tanpa ini akan selalu muncul kesalahan.
Chandramani

Ini juga dapat membuat perbedaan di mana Anda mencoba memasukkan outlet baru. Sebab, bagian atas daftar (di mana ada ruang kosong di atas) berfungsi; tengah daftar tidak.
Richard

1
Ini harus ditandai sebagai jawaban terbaik. Lebih mudah, lebih cepat dan lebih dapat diandalkan. Juga berfungsi sepanjang waktu! Kerja bagus dan terima kasih @StephenPaul
denis_lor

51

Cukup lakukan dua langkah berikut untuk menyingkirkan kesalahan ini

  1. Proyek bersih menggunakan Produk> bersih
  2. Jalankan proyek

Sekarang coba tambahkan action atau outlet. Itu dia.

Selamat Coding


4
Aneh ... dua langkah mudah ini membantu menyelesaikan masalah bagi saya juga. Jadi saya sarankan, untuk mencoba langkah-langkah mudah ini terlebih dahulu :-)
crosscode

49

Tidak ada tips dalam jawaban terbaik yang bekerja untuk saya. Menjadi gila. Kemudian perhatikan bahwa Asisten Editor entah bagaimana telah diatur ke Manual dan saya berada di ViewController.swift (Antarmuka) alih-alih file ViewController.swift.

Mengubah itu dan masalah terpecahkan. Agak memalukan, tapi hei, kita semua belajar.

masukkan deskripsi gambar di sini


1
Jawaban penyelamat hidup! Tidak ada jawaban lain yang menyelesaikannya sekali dan selamanya. Sayang sekali bahwa deskripsi kesalahan tidak memberikan petunjuk bahwa Anda mungkin berada di file worng. Terima kasih. +1 untuk gambar itu membuatnya jelas.
Pauloco

Saya melihat sesuatu yang sangat mirip, tetapi berbeda: Di jalur di atas tempat nama kelas ditampilkan, hanya ada nama kelas, tetapi hilang awal jalan sebagai myProject> appName> controller dan kemudian kelas. Saya memilih kelas lain lalu kembali ke kelas yang bermasalah, dan semuanya OK
claude31

15

Inilah langkah-langkah yang dipecahkan untuk saya:

  1. Hapus referensi nama Kelas dari View (storyboard / xib) dan simpan;
  2. Tambahkan lagi nama Kelas dan simpan;
  3. Bersih dan Bangun;

Selesai!


10

Saya memiliki masalah yang sama. Saya lelah di bawah solusi tetapi tidak berhasil:

  1. Clean Project (cmd + shift + k) dan bahkan Clean Project Build (cmd + shift + alt + k)
  2. Deleted Derived data dan Module Cache content

Di bawah ini solusi untuk masalah ini:

  1. Pindah ke file kode sumber dan tulis IBOutlet / IBActionsecara manual (salin tempel disukai)

Tangkapan layar 1

  1. Kemudian pindah ke file Storyboard dan Buka Utilitesjendela
  2. Pergi ke Connection Inspector
  3. Kemudian Hubungkan IBOutletdan IBActionditulis dalam file sumber dengan Interface Builder.

Tangkapan layar 2


Menyeret Outlet / Tindakan tidak berfungsi sama sekali, tetapi setelah saya melakukannya secara manual seperti ini, semuanya bekerja dengan baik lagi.
Jason

Ini adalah metode alternatif standar untuk membuat koneksi. Dalam hal aksi tombol radio, satu-satunya cara, AFAIK. Di storyboard, Anda juga bisa mengklik kanan pada controller, menemukan fungsinya, dan membuat koneksi.
singkat

8

Saya memiliki masalah yang sama. Saya menyadari daripada dalam Manualitem X-Code dipilih ketika saya mencoba membuat outlet dengan kontrol-tarik

masukkan deskripsi gambar di sini

Setelah saya atur ke otomatis itu berhasil

masukkan deskripsi gambar di sini


Saya punya masalah persis ini. Bahkan tidak menyadari perbedaannya.
Joshua Dance

Bagus!!! Saya telah kehilangan banyak waktu untuk proyek pembersihan bug ini, me-restart xCode, menghapus data turunan, tapi itu hanya solusi yang bekerja untuk saya! Terima kasih banyak!
Anton Eregin

7

Saya memecahkan masalah ini dengan secara terprogram membuat Label dan Textfields, dan kemudian Command-Draged dari lingkaran kosong kecil di sebelah kiri kode ke komponen di Storyboard. Untuk mengilustrasikan poin saya: saya menulis @IBOutlet weak var HelloLabel: UILabel!, lalu menekan Command dan menyeret kode ke dalam komponen di storyboard.


Solusi ini sangat cocok untuk saya! Terlepas dari @IBOutlet weak var myButton: UIButtonsaya menggunakan proses yang sama untuk mengatur @IBAction func doSomething(_ sender: Any) { }dan kemudian menghubungkan func ini ke UIButton di storyboard saya. Terima kasih telah berbagi @KuboAndTwoStrings ini
Nii Mantse

6
  1. Tutup proyek yang sedang Anda kerjakan.
  2. Hapus folder 【DerivedData】 proyek Anda. (Folder ini mungkin di dalam folder proyek Anda, atau di dalam
    ~/Library/Developer/Xcode/DerivedData/
    (proyek Anda) /) atau di tempat lain yang Anda siapkan.
  3. mulai ulang proyek Anda.

4

Saya menemukan solusi yang lebih mudah karena bug ini dapat ditemukan di XCODE 9.

Langkah pertama buka viewcontroller Anda dan tulis properti yang ingin Anda sambungkan secara manual seperti contoh di bawah ini, pastikan Anda menggunakan format di bawah ini.

@IBOutlet pertanyaan lemah lemahStackView: UIStackView!

Langkah dua pergi ke storyboard Anda dan sambungkan pandangan Anda atau apa pun yang Anda coba sambungkan ke properti yang Anda buat pada langkah 1.

Di atas akan menghemat waktu Anda menghapus dan membersihkan data yang diturunkan.


3

Saya mendapatkan bug ini ketika saya mengganti nama kelas. Lalu saya menyelesaikannya hanya dengan mengikuti langkah-langkah di bawah ini

  • Dalam Menu Xcode -> Product->Clean
  • Restart Xcode

ini satu-satunya solusi yang cukup lucu buat saya.
Joseph Astrahan

2

Dalam kasus saya ini adalah bc saya memilih file UIViewController baru di IB dan kemudian mencoba untuk ctrl-drag ke controller baru ini tanpa terlebih dahulu menghapus koneksi sebelumnya di Connections Inspector. Hapus yang pertama dan coba lagi.


2

Bagi saya itu berfungsi ketika pada tab kanan> Pelokalan, saya mencentang kotak Bahasa Inggris. Awalnya hanya Base yang diperiksa. Setelah itu saya tidak punya masalah lagi. Semoga ini membantu!


2

masukkan deskripsi gambar di sini

Saya memilih opsi Otomatis untuk memilih file ViewController.swift. Dan kemudian saya bisa mengambil outlet.


2

Silakan lakukan dua langkah berikut ini hanya untuk menghilangkan kesalahan ini.

1.  Clean Project using Product -> clean.
2.  Run the Project.

Sekarang coba tambahkan / Hubungkan tindakan atau outlet.

Bekerja dengan baik untukku berkali-kali.


1

Itu terjadi ketika saya menambahkan Swiftfile ke Objective-Cproyek.
Jadi, dalam situasi ini yang dapat Anda lakukan adalah. .

  • Select MY_FILE.Swift >> Delete >> Remove Reference
  • Select MY_FOLDER >> Add MY_FILE.Swift
  • Voila ! You are good to go .

Untuk ini! Saya sudah mencoba untuk menyelesaikan masalah ini sendiri selama setengah jam sudah lol. Masalah seperti ini di Storyboards mudah diperbaiki. Terima kasih! Ini sangat membantu saya!
Glenn

0

Solusi paling sederhana: - Saya menggunakan xCode 7 dan iOS 9.

di .m Anda

hapus #import "VC.h"

simpan .m dan tautkan outlet Anda lagi berfungsi baik.


0

Saya menggunakan xCode 7 dan iOS 9.

di .m Anda

menghapus #import "VC.h"

simpan .m dan tautkan outlet Anda lagi berfungsi baik.

di .m Anda

Menambahkan #import "VC.h"

simpan .m


0

Tak satu pun dari ini bekerja untuk saya, tetapi saya tahu ini.

Di dalam storyboard saya menyalin ViewController yang sesuai ke clipboard dan menghapusnya, setelah itu saya menempelkannya lagi.

Tiba-tiba semuanya bekerja seperti pesona lagi!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.