Yeni çıkış bağlantısı eklenemedi: adlı sınıf için herhangi bir bilgi bulunamadı


281

Xcode üzerinde görünüm denetleyicisi hakkında hiçbir bilgi olmadığını söyleyen bir hata aldım.

Yeni çıkış bağlantısı eklenemedi: adlı sınıf için herhangi bir bilgi bulunamadı

Bu neden oluyor?

Ekran görüntüsü 1


2
Bunun daha önce sorulduğunu düşünüyorum: stackoverflow.com/questions/17735182/…
Tapani

Sadece Xcode'u bıraktım, sonra tekrar açtım. derleyici tüm dosyaları yeniden yükler ve aradığınız dosyayı algılayabilir
Jane chicken

Görünüm denetleyici dosyanızda zaten bağlı olmayan bir priz olup olmadığını kontrol edin. Yaptığımı keşfettim. Sildikten sonra hiçbir sorunum olmadı.
Kex

Benim için yukarıdaki çözümlerin hiçbiri işe yaramadı. Bunu yeniden kullanmak için storyboard'uma tekrar kopyalayıp yapıştırdığım görünüm denetleyicisini silmek zorunda kaldım.Sonra yeni bir görünüm denetleyicisini sürükledim ve her şey yolunda gitti :). Umarım aynı problemi olan birine yardımcı olabilir.
Arslan Saleem

Bu XCode bir HATA ve neden düzeltmek bilmiyorum. XCode'u kapatıp tekrar açmalısınız. Çıkışları koymayı tekrar denediğinizde, ancak bu sefer yapmadan önce bir sürü ENTERS bırakın. Hiçbir şeyi silmenize veya zamanınızı diğer seçeneklere harcamanıza gerek yoktur ... Bu sorunlarınızı çözecektir.
mavesonzini

Yanıtlar:


692

İşte bunu düzeltebilecek bazı şeyler (artan zorluk derecesinde):

  • Projeyi temizleyin ( Ürün> Temiz )
  • Manuel olarak yapıştırın

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

    ve kontrol sürükleyin. (Gerektiğinde Değişim yazın.) Ayrıca bakınız bu .

  • Xcode'u tamamen kapatın ve projenizi yeniden başlatın.

  • Türetilmiş Veri klasörünü silin ( Xcode> Tercihler > Konumlar'a gidin ve Türetilmiş Veri klasörünün yanındaki gri oku tıklayın. Ardından proje klasörünüzü silin.)
  • Sınıfta sil'i tıklayın, referansı kaldırın (Çöp Kutusuna Taşı değil) ve tekrar ekleyin. ( bu cevaba bakınız )

Bu adımlar işe yarayacak şekilde görünüm denetleyicisindeki sınıfı kaldırmayı unutmayın
reggie

8
Bu adımların hiçbiri Xcode 8.3.2'de işe yaramadı. "Kimlik denetçisini göster"> "Sınıf" alanı (özel sınıfın adını vurgulamak ve silmek) temizlendi> "Sınıf" alanına sınıf adını yeniden girmek zorunda kaldı. Xcode sınıf adını otomatik olarak tamamladı. Sonra enter tuşuna bastım.
PeqNP

Tek komutla silme alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'komutunu kullanmak için ~ / .bashrc satırınızı ekleyinpurgederiveddata
eskimwier

Bu sorunu düzeltmenin başka bir yolunu buldum, oluşturma hızımı artırmak için bazı oluşturma ayarlarını değiştirdiğimde bu bana oldu. stackoverflow.com/a/50555888/2952876
Mathias Van Houtte

Hepinizi aşağıda benim çözümümü denemenizi şiddetle tavsiye ediyorum. İnsanların sıkça görülen bir hata için bilgisayarlarını yeniden başlatmaları gerektiğini bilmek cesaret ister.
Stephen Paul

134

Ya da yukarıdakilerin hiçbiri işe yaramazsa, önce çıkışın adını dosyaya yazın @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!ve ardından uçtaki çıkıştan programlı olarak oluşturduğunuz değişkene tıklayın ve sürükleyin. Herhangi bir şeyi temizleme, inşa etme ve silme zahmetine girmeden çalışmalıdır.


4
genellikle daha hızlı çözüm yerine yaşları temizlemek yerine, inşa etmek, vb. teşekkürler.
mohonish

1
Çok güzel ve bunu yaptıktan sonra Otomatik görünmeye başlar, teşekkürler.
AmJa

1
Her şeyden önce XIB Nesnenizi IBoutlet'lere bağlayın.Daha sonra sınırlamalarını IBOutlets'e bağlamaya çalışın. bu olmadan her zaman hata gösterecektir.
Chandramani

Yeni prizi takmaya çalıştığınız yerde de fark yaratabilir. Çünkü, listenin üst kısmı (yukarıdaki boş alanın olduğu yerde) çalıştı; listenin ortası olmadı.
Richard

1
Bu en iyi cevap olarak işaretlenmelidir. Daha kolay, daha hızlı ve daha güvenilirdir. Ayrıca her zaman çalışır! İyi iş ve teşekkürler @StephenPaul
denis_lor

51

Bu hatadan kurtulmak için aşağıdaki iki adımı uygulamanız yeterlidir

  1. Ürünü kullanarak temiz proje> temiz
  2. Projeyi çalıştırın

Şimdi eylemi veya çıkışı eklemeyi deneyin. Bu kadar.

Mutlu Kodlama


4
Garip ... Bu kolay iki adım da benim için problemi çözmeye yardımcı oldu. Bu yüzden, önce bu kolay adımları denemek için tavsiye ederim :-)
çapraz kod

49

En iyi cevaptaki ipuçlarının hiçbiri benim için çalışmadı. Deli oluyordu. Ardından Yardımcı Editör'ün bir şekilde Manuel olarak ayarlandığını ve ViewController.swift (Arayüz) üzerinde olduğumu fark ettim. ve ViewController.swift dosyası yerine .

Bunu değiştirdi ve sorun çözüldü. Biraz utanç verici ama hey, hepimiz öğreniyoruz.

resim açıklamasını buraya girin


1
Hayat kurtarıcı cevap! Diğer cevapların hiçbiri bunu bir kez ve sonsuza dek çözemedi. Hata açıklamasının worng dosyasında olabileceğiniz en az ipucunu vermemesi çok kötü. Teşekkürler. Resim için +1, her şeyi netleştirdi.
Pauloco

Oldukça benzer, ama farklı bir şey fark ettim: Sınıf adının görüntülendiği üstteki yolda, sadece sınıf adı vardı, ancak yolun myProject> appName> denetleyicisi ve sonra sınıf olarak eksik başlangıcı vardı. Başka bir sınıf seçtikten sonra sorunlu
olana

15

İşte benim için çözülen adımlar:

  1. Sınıf adı başvurusunu Görünüm'den (film şeridi / xib) kaldırın ve kaydedin;
  2. Sınıf adını tekrar ekleyin ve kaydedin;
  3. Temizleyin ve Yapın;

Yapıldı!


10

Aynı sorunu yaşadım. Aşağıdaki çözümlerden yoruldum ama çalışmadım:

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

Bu sorunla ilgili geçici çözümü aşağıda bulabilirsiniz:

  1. Kaynak kod dosyasına gidin ve IBOutlet / IBActionmanuel olarak yazın (kopyala yapıştır tercih edilir)

Ekran görüntüsü 1

  1. Ardından Storyboard dosyasına ve Aç Utilitespenceresine gidin
  2. Goto Connection Inspector
  3. Sonra IBOutletve IBActionkaynak dosyaya Interface Builder ile bağlayın .

Ekran görüntüsü 2


Çıkışları / İşlemleri sürüklemek hiç çalışmadı, ancak bunu manuel olarak yaptıktan sonra, her şey tekrar düzgün çalıştı.
Jason

Bu, bağlantı yapmak için standart bir alternatif yöntemdir. Radyo düğmesi eylemleri durumunda, tek yol AFAIK. Film şeridinde, denetleyiciyi sağ tıklayabilir, işlevi bulabilir ve bağlantı kurabilirsiniz.
curt

8

Ben de aynı problemi yaşadım. ManualControl-drag ile bir çıkış oluşturmaya çalıştığımda X-Code öğesinin seçildiğinden fark ettim

resim açıklamasını buraya girin

Otomatik olarak ayarladıktan sonra çalıştı

resim açıklamasını buraya girin


Tam olarak bu problemi yaşadım. Farkı bile fark etmedim.
Joshua Dance

Harika!!! Bu hata temizleme projesi için çok fazla zaman kaybettim, xCode'u yeniden başlatarak türetilmiş verileri sildim, ama bu sadece benim için çalışan bir çözümdü! Çok teşekkürler!
Anton Eregin

7

Bu sorunu programlı olarak Etiketler ve Metin Alanları oluşturarak çözdüm ve sonra kodun solundaki küçük boş çevrelerden Storyboard'daki bileşenlere Command-Dragged. Demek istediğimi göstermek için: Yazdım @IBOutlet weak var HelloLabel: UILabel!ve sonra Command tuşuna basıp kodu film şeridindeki bileşene sürükledim.


Bu çözüm benim için mükemmel çalıştı! Bunun dışında @IBOutlet weak var myButton: UIButtonaynı işlemi kurmak için kullandım @IBAction func doSomething(_ sender: Any) { }ve ardından bu fonu film şeridimdeki UIButton'a bağladım . Bunu paylaştığınız için teşekkür ederiz @KuboAndTwoStrings
Nii Mantse

6
  1. Üzerinde çalıştığınız projeyi kapatın.
  2. Projenizin 【DerivedData】 klasörünü silin. (Bu klasör projenizin klasörü içinde veya
    ~/Library/Developer/Xcode/DerivedData/
    (projeniz) / içinde veya sizin tarafınızdan ayarlanmış başka bir yerde olabilir.
  3. projenizi yeniden başlatın.

4

Bu hatayı XCODE 9'da bulabildiğim için daha kolay bir çözüm buldum.

Birinci adım viewcontroller'ınıza gidin ve aşağıdaki örnek olarak bağlamak istediğiniz özelliği manuel olarak yazın, aşağıdaki formatı kullandığınızdan emin olun.

@IBOutlet zayıf değişken sorularStackView: UIStackView!

İkinci adım, film şeridinize gidin ve görünümünüzü veya 1. adımda oluşturduğunuz mülke bağlanmaya çalıştığınız her şeyi bağlayın.

Yukarıdakiler, türetilen verileri kaldırma ve temizleme zamanından tasarruf etmenizi sağlayacaktır.


3

Sınıfı yeniden adlandırdığımda bu hatayı aldım. Sonra sadece aşağıdaki adımları izleyerek çözdüm

  • Xcode Menüsünde -> Product->Clean
  • Restart Xcode

bu benim için yeterince komik olan tek çözümdü.
Joseph Astrahan

2

Benim durumumda bu bc IB yeni bir UIViewController dosyası seçti ve daha sonra önce Bağlantılar Müfettiş önceki bağlantıları kaldırmadan bu yeni denetleyiciye ctrl-sürüklemeye çalıştı. Önce bunları kaldırın ve tekrar deneyin.


2

Benim için sağ sekmede> Yerelleştirme, İngilizce onay kutusunu işaretledi. Başlangıçta sadece Baz kontrol edildi. Ondan sonra başka problemim yoktu. Bu yardımcı olur umarım!


2

resim açıklamasını buraya girin

ViewController.swift dosyasını seçmek için Otomatik seçeneğini seçtim . Ve sonra çıkışları alabilirim.


2

Bu hatayı ortadan kaldırmak için lütfen aşağıdaki iki adımı uygulayın.

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

Şimdi eylemleri veya çıkışları eklemeyi / Bağlamayı deneyin.

Birçok kez benim için iyi çalışıyor.


1

SwiftBir Objective-Cprojeye bir dosya eklediğimde oldu .
Yani, bu durumda yapabileceğiniz şey. .

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

Bunun için! Ben zaten yarım saat zaten kendi başıma bu sorunu çözmeye çalışıyorum. Storyboard'larda bunun gibi sorunların çözülmesi kolaydır. Teşekkürler! Bu bana çok yardımcı oldu!
Glenn

0

En basit çözüm: - xCode 7 ve iOS 9 kullandım.

.m

#import "VC.h" dosyasını sil

.m kaydedin ve çıkışınızı tekrar bağlayın, iyi çalışıyor.


0

XCode 7 ve iOS 9 kullandım.

.m

silmek #import "VC.h"

.m kaydedin ve çıkışınızı tekrar bağlayın, iyi çalışıyor.

.m

Ekle #import "VC.h"

kaydet. m


0

Bunların hiçbiri benim için işe yaramadı ama ben hallettim.

İçinde storyboard karşılık gelen ViewController'ı panoya kopyaladım ve sildim, daha sonra tekrar yapıştırdım.

Aniden her şey tekrar bir cazibe gibi çalışıyordu!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.