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
@IBOutletweakvar viewName:UIView!// or
@IBActionfunc 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.
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
Proyek bersih menggunakan Produk> bersih
Jalankan proyek
Sekarang coba tambahkan action atau outlet. Itu dia.
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.
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:
Hapus referensi nama Kelas dari View (storyboard / xib) dan simpan;
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
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
Tutup proyek yang sedang Anda kerjakan.
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.
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.
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.
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!
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.
Jawaban:
Berikut adalah beberapa hal yang dapat memperbaikinya (dengan meningkatnya tingkat kesulitan):
Tempel secara manual
dan kontrol tarik ke sana. (Ubah tipe sesuai kebutuhan.) Lihat juga ini .
Tutup sepenuhnya Xcode dan mulai ulang proyek Anda.
sumber
alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'
ke ~ / .bashrc Anda untuk menggunakan perintah inipurgederiveddata
untuk menghapus dengan satu perintahAtau 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.sumber
Cukup lakukan dua langkah berikut untuk menyingkirkan kesalahan ini
Sekarang coba tambahkan action atau outlet. Itu dia.
Selamat Coding
sumber
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.
sumber
Inilah langkah-langkah yang dipecahkan untuk saya:
Selesai!
sumber
Saya memiliki masalah yang sama. Saya lelah di bawah solusi tetapi tidak berhasil:
Clean Project (cmd + shift + k)
dan bahkanClean Project Build (cmd + shift + alt + k)
Deleted Derived data
danModule Cache content
Di bawah ini solusi untuk masalah ini:
IBOutlet / IBAction
secara manual (salin tempel disukai)Utilites
jendelaConnection Inspector
IBOutlet
danIBAction
ditulis dalam file sumber dengan Interface Builder.sumber
Saya memiliki masalah yang sama. Saya menyadari daripada dalam
Manual
item X-Code dipilih ketika saya mencoba membuat outlet dengan kontrol-tarikSetelah saya atur ke otomatis itu berhasil
sumber
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.sumber
@IBOutlet weak var myButton: UIButton
saya 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~/Library/Developer/Xcode/DerivedData/
(proyek Anda) /) atau di tempat lain yang Anda siapkan.
sumber
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.
sumber
Saya mendapatkan bug ini ketika saya mengganti nama kelas. Lalu saya menyelesaikannya hanya dengan mengikuti langkah-langkah di bawah ini
Product
->Clean
Restart
Xcodesumber
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.
sumber
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!
sumber
Saya memilih opsi Otomatis untuk memilih file ViewController.swift. Dan kemudian saya bisa mengambil outlet.
sumber
Silakan lakukan dua langkah berikut ini hanya untuk menghilangkan kesalahan ini.
Sekarang coba tambahkan / Hubungkan tindakan atau outlet.
Bekerja dengan baik untukku berkali-kali.
sumber
Itu terjadi ketika saya menambahkan
Swift
file keObjective-C
proyek.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 .
sumber
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.
sumber
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
sumber
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!
sumber