Po prostu zamknąłem Xcode, a następnie otworzyłem go ponownie. kompilator ponownie załaduje wszystkie pliki i może wykryć plik, którego szukasz
Jane Chicken
Sprawdź, czy w pliku kontrolera widoku nie ma jeszcze odłączonego gniazdka. Odkryłem, że tak. Po usunięciu nie miałem problemów.
Kex,
Dla mnie żadne z powyższych rozwiązań nie działało. Musiałem usunąć kontroler widoku, który skopiowałem i wkleiłem ponownie w mojej serii ujęć, aby go ponownie użyć. Następnie przeciągnąłem nowy kontroler widoku w serii ujęć i wszystko poszło dobrze :). Mam nadzieję, że może pomóc komuś z tym samym problemem.
Arslan Saleem
To jest BŁĄD w XCode i nie wiem, dlaczego go nie naprawiają. Musisz zamknąć XCode i ponownie otworzyć. Gdy spróbujesz ponownie umieścić gniazda, ale tym razem zostaw kilka ENTERS przed zrobieniem tego. Nie musisz niczego usuwać ani marnować czasu na inne opcje ... To rozwiąże twoje problemy.
mavesonzini
Odpowiedzi:
692
Oto kilka rzeczy, które mogą to naprawić (w kolejności rosnącej trudności):
Wyczyść projekt ( Produkt> Wyczyść )
Ręcznie wklej
@IBOutletweakvar viewName:UIView!// or
@IBActionfunc viewTapped(_ sender:Any){}
i kontroluj przeciąganie do niego. (Zmiany typu, ile potrzeba.) Zobacz również ten .
Całkowicie zamknij Xcode i uruchom ponownie projekt.
Usuń folder danych pochodnych (przejdź do Xcode> Preferencje > Lokalizacje i kliknij szarą strzałkę obok folderu Dane pochodne. Następnie usuń folder projektu).
Kliknij usuń klasę, usuń referencję (nie Przenieś do Kosza) i dodaj ją ponownie. (zobacz tę odpowiedź )
nie zapomnij usunąć klasy z kontrolera widoku, aby te kroki działały
reggie
8
Żaden z tych kroków nie działał dla mnie w Xcode 8.3.2. Musiałem „Pokaż inspektora tożsamości”> wyczyścić pole „Klasa” (zaznaczyć nazwę klasy niestandardowej i usunąć)> ponownie wprowadzić nazwę klasy w polu „Klasa”. Xcode automatycznie uzupełnił nazwę klasy. Następnie nacisnąłem Enter.
PeqNP
Dodaj wiersz alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'do ~ / .bashrc, aby użyć polecenia purgederiveddatado wyczyszczenia jednym poleceniem
eskimwier
Znalazłem inny sposób na rozwiązanie tego problemu. Przydarzyło mi się to, gdy zmieniłem niektóre ustawienia kompilacji, aby poprawić szybkość kompilacji. stackoverflow.com/a/50555888/2952876
Mathias Van Houtte
Gorąco zachęcam was wszystkich do wypróbowania poniższego rozwiązania. Byłoby wypatroszone, aby wiedzieć, że ludzie muszą ponownie uruchamiać swoje komputery, aby często pojawiał się błąd.
Stephen Paul
134
Lub jeśli żadna z powyższych nie działa, najpierw wpisz nazwę ujścia do pliku, @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!a następnie kliknij i przeciągnij od ujścia w stalówce do zmiennej, którą właśnie utworzyłeś programowo. Powinno działać bez żadnych problemów z czyszczeniem, budowaniem i usuwaniem czegokolwiek.
często szybsze rozwiązanie zamiast spędzać wiek na czyszczeniu, budowaniu itp. dzięki.
mohonish
1
Bardzo fajnie, a kiedy to zrobisz, zacznie się wyświetlać Automatic, dzięki.
AmJa
1
Najpierw podłącz swój obiekt XIB do IBoutletów, a następnie spróbuj połączyć ich ograniczenia IBOutletów. bez tego zawsze będzie wyświetlać błąd.
Chandramani,
Może to również mieć znaczenie, gdy spróbujesz włożyć nowy wylot. Na górze listy (gdzie powyżej jest wolne miejsce) zadziałało; środek listy nie.
Richard
1
To powinno być oznaczone jako najlepsza odpowiedź. To jest łatwiejsze, szybsze i bardziej niezawodne. Działa to również cały czas! Dobra robota i dzięki @StephenPaul
denis_lor
51
Wykonaj dwa następujące kroki, aby pozbyć się tego błędu
Dziwne ... te dwa proste kroki pomogły mi również rozwiązać problem. Polecam więc najpierw spróbować tych łatwych kroków :-)
crosscode
49
Żadna ze wskazówek w najlepszej odpowiedzi nie działała dla mnie. Oszalałam. Potem zauważyłem, że Asystent Editor w jakiś sposób ustawił się na Ręczny i byłem na ViewController.swift (Interfejs) zamiast pliku ViewController.swift.
Zmieniłem to i problem rozwiązany. Trochę zawstydzające, ale hej, wszyscy się uczymy.
Odpowiedź oszczędzania życia! Żadna z pozostałych odpowiedzi nie rozwiązała tego raz na zawsze. Szkoda, że opis błędu nie daje najmniejszej wskazówki, że możesz znajdować się w pliku worng. Dzięki. +1 za zdjęcie to wszystko wyjaśniło.
Pauloco
Zauważyłem coś całkiem podobnego, ale innego: w ścieżce u góry, gdzie wyświetlana jest nazwa klasy, była tylko nazwa klasy, ale brakowało początku ścieżki jako myProject> appName> kontroler, a następnie klasa. Wybrałem inną klasę, a potem z powrotem do problematycznej i wszystko w porządku
claude31,
15
Oto kroki dla mnie rozwiązane:
Usuń odwołanie do nazwy klasy z View (storyboard / xib) i zapisz;
Przeciąganie gniazdek / akcji w ogóle nie działało, ale po tym, jak zrobiłem to ręcznie, wszystko znowu działało poprawnie.
Jason
Jest to standardowa alternatywna metoda wykonywania połączeń. W przypadku akcji przycisku radiowego jedynym sposobem jest AFAIK. W serii ujęć możesz również kliknąć kontroler prawym przyciskiem myszy, znaleźć funkcję i nawiązać połączenie.
Curt
8
Miałem ten sam problem. Uświadomiłem sobie, że w X-Code Manualzostał wybrany element, gdy próbowałem utworzyć ujście za pomocą przeciągania z wciśniętym klawiszem Control
Miałem dokładnie ten problem. Nawet nie zauważyłem różnicy.
Joshua Dance
Wspaniały!!! Straciłem tyle czasu na ten projekt usuwania błędów, restartowania kodu xCode, usuwania danych pochodnych, ale to było dla mnie tylko rozwiązanie! Wielkie dzięki!
Anton Eregin
7
Rozwiązałem ten problem, programowo tworząc Etykiety i Pola Tekstowe, a następnie Przeciągnąłem klawiszem Command z małych pustych kółek po lewej stronie kodu do składników na Storyboard. Aby zilustrować mój punkt: napisałem @IBOutlet weak var HelloLabel: UILabel!, a następnie nacisnąłem Command i przeciągnąłem kod do komponentu na serii ujęć.
To rozwiązanie działało dla mnie idealnie! Oprócz tego @IBOutlet weak var myButton: UIButtonużyłem tego samego procesu, aby skonfigurować, @IBAction func doSomething(_ sender: Any) { }a następnie podłączyłem tę funkcję do UIButton na mojej serii ujęć. Dziękujemy za udostępnienie tego @KuboAndTwoStrings
Nii Mantse
6
Zamknij projekt, nad którym pracujesz.
Usuń folder projektu 【DerivedData】. (Ten folder może ~/Library/Developer/Xcode/DerivedData/
znajdować się w folderze twojego projektu, w (twoim projekcie) /) lub w innym miejscu, które sam skonfigurowałeś.
Znalazłem łatwiejsze obejście, ponieważ ten błąd można znaleźć w XCODE 9.
Krok pierwszy przejdź do kontrolera widoku i ręcznie napisz właściwość, z którą chcesz się połączyć, jak w poniższym przykładzie, upewnij się, że używasz poniższego formatu.
@IBOutlet słaby var pytaniaStackView: UIStackView!
Krok drugi przejdź do scenorysu i połącz widok lub cokolwiek, co próbujesz połączyć z usługą utworzoną w kroku 1.
Powyższe pozwoli Ci zaoszczędzić czas na usuwanie i czyszczenie danych pochodnych.
to było jedyne rozwiązanie, które zadziałało dla mnie dość zabawnie.
Joseph Astrahan
2
W moim przypadku było to bc Wybrałem nowy plik UIViewController w IB, a następnie próbowałem przeciągnąć ctrl do tego nowego kontrolera bez uprzedniego usunięcia poprzednich połączeń w Inspektorze połączeń. Usuń je najpierw i spróbuj ponownie.
Dla mnie zadziałało, gdy na prawej karcie> Lokalizacja zaznaczyłem pole wyboru w języku angielskim. Początkowo sprawdzono tylko bazę. Po tym nie miałem już żadnych problemów. Mam nadzieję że to pomoże!
Gotowi na to! Próbowałem rozwiązać ten problem sam od pół godziny już lol. Problemy takie jak w Storyboardach można jednak łatwo naprawić. Dzięki! To mi bardzo pomogło!
Glenn
0
Najprostsze rozwiązanie: - Użyłem xCode 7 i iOS 9.
w twoim .m
usuń #import „VC.h”
zapisz .m i połącz ponownie swój punkt sprzedaży, działa dobrze.
Odpowiedzi:
Oto kilka rzeczy, które mogą to naprawić (w kolejności rosnącej trudności):
Ręcznie wklej
i kontroluj przeciąganie do niego. (Zmiany typu, ile potrzeba.) Zobacz również ten .
Całkowicie zamknij Xcode i uruchom ponownie projekt.
źródło
alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'
do ~ / .bashrc, aby użyć poleceniapurgederiveddata
do wyczyszczenia jednym poleceniemLub jeśli żadna z powyższych nie działa, najpierw wpisz nazwę ujścia do pliku,
@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!
a następnie kliknij i przeciągnij od ujścia w stalówce do zmiennej, którą właśnie utworzyłeś programowo. Powinno działać bez żadnych problemów z czyszczeniem, budowaniem i usuwaniem czegokolwiek.źródło
Wykonaj dwa następujące kroki, aby pozbyć się tego błędu
Teraz spróbuj dodać akcję lub ujście. Otóż to.
Happy Coding
źródło
Żadna ze wskazówek w najlepszej odpowiedzi nie działała dla mnie. Oszalałam. Potem zauważyłem, że Asystent Editor w jakiś sposób ustawił się na Ręczny i byłem na ViewController.swift (Interfejs) zamiast pliku ViewController.swift.
Zmieniłem to i problem rozwiązany. Trochę zawstydzające, ale hej, wszyscy się uczymy.
źródło
Oto kroki dla mnie rozwiązane:
Gotowe !
źródło
Miałem ten sam problem. Miałem dość rozwiązań, ale nie działałem:
Clean Project (cmd + shift + k)
i nawetClean Project Build (cmd + shift + alt + k)
Deleted Derived data
iModule Cache content
Poniżej obejście tego problemu:
IBOutlet / IBAction
ręcznie (preferowana kopia wklej)Utilites
oknoConnection Inspector
IBOutlet
iIBAction
zapisany w pliku źródłowym za pomocą Konstruktora interfejsów.źródło
Miałem ten sam problem. Uświadomiłem sobie, że w X-Code
Manual
został wybrany element, gdy próbowałem utworzyć ujście za pomocą przeciągania z wciśniętym klawiszem ControlPo ustawieniu na automatyczne działało
źródło
Rozwiązałem ten problem, programowo tworząc Etykiety i Pola Tekstowe, a następnie Przeciągnąłem klawiszem Command z małych pustych kółek po lewej stronie kodu do składników na Storyboard. Aby zilustrować mój punkt: napisałem
@IBOutlet weak var HelloLabel: UILabel!
, a następnie nacisnąłem Command i przeciągnąłem kod do komponentu na serii ujęć.źródło
@IBOutlet weak var myButton: UIButton
użyłem tego samego procesu, aby skonfigurować,@IBAction func doSomething(_ sender: Any) { }
a następnie podłączyłem tę funkcję do UIButton na mojej serii ujęć. Dziękujemy za udostępnienie tego @KuboAndTwoStrings~/Library/Developer/Xcode/DerivedData/
znajdować się w folderze twojego projektu, w (twoim projekcie) /) lub w innym miejscu, które sam skonfigurowałeś.
źródło
Znalazłem łatwiejsze obejście, ponieważ ten błąd można znaleźć w XCODE 9.
Krok pierwszy przejdź do kontrolera widoku i ręcznie napisz właściwość, z którą chcesz się połączyć, jak w poniższym przykładzie, upewnij się, że używasz poniższego formatu.
@IBOutlet słaby var pytaniaStackView: UIStackView!
Krok drugi przejdź do scenorysu i połącz widok lub cokolwiek, co próbujesz połączyć z usługą utworzoną w kroku 1.
Powyższe pozwoli Ci zaoszczędzić czas na usuwanie i czyszczenie danych pochodnych.
źródło
Mam ten błąd, kiedy przemianowałem klasę. Następnie rozwiązałem go, wykonując poniższe kroki
Product
->Clean
Restart
Xcodeźródło
W moim przypadku było to bc Wybrałem nowy plik UIViewController w IB, a następnie próbowałem przeciągnąć ctrl do tego nowego kontrolera bez uprzedniego usunięcia poprzednich połączeń w Inspektorze połączeń. Usuń je najpierw i spróbuj ponownie.
źródło
Dla mnie zadziałało, gdy na prawej karcie> Lokalizacja zaznaczyłem pole wyboru w języku angielskim. Początkowo sprawdzono tylko bazę. Po tym nie miałem już żadnych problemów. Mam nadzieję że to pomoże!
źródło
Wybrałem opcję Automatyczną , aby wybrać plik ViewController.swift. A potem mogę wziąć sklepy.
źródło
Wykonaj następujące dwa kroki tylko, aby pozbyć się tego błędu.
Teraz spróbuj dodać / Połącz działania lub gniazdka.
Działa mi dobrze wiele razy.
źródło
Stało się tak, gdy dodałem
Swift
plik doObjective-C
projektu.Więc w tej sytuacji możesz zrobić. .
Select
MY_FILE.Swift
>>
Delete
>>
Remove Reference
Select
MY_FOLDER
>>
Add
MY_FILE.Swift
Voila ! You are good to go .
źródło
Najprostsze rozwiązanie: - Użyłem xCode 7 i iOS 9.
w twoim .m
usuń #import „VC.h”
zapisz .m i połącz ponownie swój punkt sprzedaży, działa dobrze.
źródło
Użyłem xCode 7 i iOS 9.
w twoim .m
usunąć
#import "VC.h"
zapisz .m i połącz ponownie swój punkt sprzedaży, działa dobrze.
w twoim .m
Dodaj
#import "VC.h"
zapisz .m
źródło
Nic z tego nie działało, ale wymyśliłem to.
Wewnątrz scenorysu skopiowałem odpowiedni ViewController do schowka i usunąłem go, a następnie wkleiłem go ponownie.
Nagle wszystko znów działało jak urok!
źródło