새 콘센트 연결을 삽입 할 수 없습니다 : 이름이 지정된 클래스에 대한 정보를 찾을 수 없습니다


281

Xcode에서 뷰 컨트롤러에 대한 정보가 없다는 오류가 발생했습니다.

새 콘센트 연결을 삽입 할 수 없습니다 : 이름이 지정된 클래스에 대한 정보를 찾을 수 없습니다

왜 이런 일이 발생합니까?

스크린 샷 1


2
나는 이것이 전에 요청되었다고 생각한다 : stackoverflow.com/questions/17735182/…
Tapani

Xcode를 종료 한 다음 다시 엽니 다. 컴파일러는 모든 파일을 다시로드하고 찾고있는 파일을 감지 할 수 있습니다.
Jane chicken

View Controller 파일에 아직 연결되지 않은 콘센트가 없는지 확인하십시오. 나는 내가 한 것을 발견했다. 삭제 한 후에는 아무런 문제가 없었습니다.
Kex

솔루션 위의 저 누구도 성공 하셨어요은 삭제 뷰 컨트롤러에 있었다 내가 복사하고 있음을 재사용 내 스토리 보드에 다시 붙여 그 때는 내가 스토리 보드에 새로운 뷰 컨트롤러를 끌고 모든 일이 :) 벌금을 얻었다. 나는 그것이 같은 문제를 가진 사람을 도울 수 있기를 바랍니다.
Arslan Saleem

이것은 XCode의 버그이며 왜 수정하지 않는지 모르겠습니다. XCode를 닫고 다시 열어야합니다. 콘센트를 다시 넣으려고 시도하지만 이번에는 ENTERS를 남겨두고 콘센트를 만드십시오. 다른 옵션을 삭제하거나 시간을 낭비하지 않아도됩니다. 이렇게하면 문제가 해결됩니다.
mavesonzini

답변:


692

이 문제를 해결할 수있는 몇 가지 사항이 있습니다 (어려운 순서로 증가).

  • 프로젝트 정리 ( 제품> 정리 )
  • 수동으로 붙여 넣기

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

    드래그를 제어합니다. (필요에 따라 유형을 변경하십시오.) 내용도 참조 하십시오 .

  • Xcode를 완전히 닫고 프로젝트를 다시 시작하십시오.

  • 파생 데이터 폴더를 삭제합니다 ( Xcode> 환경 설정 > 위치로 이동 하여 파생 데이터 폴더 옆의 회색 화살표를 클릭 한 다음 프로젝트 폴더를 삭제하십시오).
  • 수업에서 삭제를 클릭하고 참조를 삭제 (휴지통으로 이동하지 않음) 한 다음 다시 추가하십시오. ( 이 답변 참조 )

이 단계가 작동하도록 뷰 컨트롤러에서 클래스를 제거하는 것을 잊지
마십시오

8
이 단계 중 어느 것도 Xcode 8.3.2에서 효과가 없었습니다. "Identity Inspector 표시"> "클래스"필드를 지우고 (사용자 정의 클래스 이름을 강조 표시하고 삭제) "클래스"필드에 클래스 이름을 다시 입력해야했습니다. Xcode가 클래스 이름을 자동 완성했습니다. 그런 다음 엔터를 누르십시오.
PeqNP

alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'~ / .bashrc에 행 을 추가하여 purgederiveddata하나의 명령으로 명령 을 지우십시오.
eskimwier

이 문제를 해결하는 또 다른 방법을 찾았습니다. 빌드 속도를 높이기 위해 빌드 설정을 변경했을 때 이런 일이 발생했습니다. stackoverflow.com/a/50555888/2952876
Mathias Van Houtte

아래의 솔루션을 모두 사용해 보시기 바랍니다. 사람들이 자주 나타나는 버그에 대해 컴퓨터를 다시 시작해야한다는 사실을 알고 싶을 것입니다.
Stephen Paul

134

또는 위의 방법 중 어느 것도 작동하지 않으면 먼저 콘센트 이름을 파일에 @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!입력 한 다음 펜촉의 콘센트에서 방금 프로그래밍 방식으로 만든 변수로 클릭하고 드래그하십시오. 청소, 제작 및 삭제의 번거 로움없이 작동해야합니다.


4
청소, 건축 등을 위해 오랜 시간을 소비하는 대신 더 빠른 솔루션을 제공하는 경우가 종종 있습니다.
mohonish

1
아주 훌륭하고 일단 이렇게하면 자동 표시가 시작됩니다. 감사합니다.
AmJa

1
모든 주먹은 XIB 객체를 IBoutlets에 연결 한 다음 제약 조건 IBOutlets를 연결하려고합니다. 이것이 없으면 항상 오류가 표시됩니다.
Chandramani

새 콘센트를 삽입 할 때 차이를 만들 수도 있습니다. 목록의 맨 위 (위에 명확한 공간이있는)가 작동했습니다. 목록의 중간에는 없었습니다.
Richard

1
이것이 최선의 답변으로 표시되어야합니다. 더 쉽고 빠르며 안정적입니다. 또한 항상 작동합니다! 좋은 일과 감사 @StephenPaul
denis_lor

51

이 오류를 제거하려면 다음 두 단계를 수행하십시오.

  1. 제품을 사용하여 프로젝트 정리> 정리
  2. 프로젝트를 실행

이제 조치 또는 콘센트를 추가하십시오. 그게 다야.

행복한 코딩


4
이상한 ...이 쉬운 두 단계는 나에게도 문제를 해결하는 데 도움이되었습니다. 따라서 다음과 같은 쉬운 단계를 먼저 시도해 보는 것이 좋습니다. :-)
Crosscode

49

가장 좋은 답변의 팁 중 어느 것도 나를 위해 일하지 않았습니다. 미쳐 가고 있었다. 그런 다음 Assistant Editor가 어떻게 든 Manual로 설정되었고 ViewController.swift 파일 대신 ViewController.swift (인터페이스) 에 있음을 알았습니다 .

변경하고 문제가 해결되었습니다. 조금 당혹 스럽지만 우리 모두 배우고 있습니다.

여기에 이미지 설명을 입력하십시오


1
생명의 은인 대답! 다른 대답은 한 번도 영원히 해결하지 못했습니다. 오류 설명으로 인해 착용 한 파일에있을 수있는 힌트가 가장 적습니다. 감사. 이미지가 +1이면 모두 명확 해졌습니다.
Pauloco

클래스 이름이 표시되는 맨 위에있는 경로에는 클래스 이름 만 있었지만 myProject> appName> controller 및 클래스와 같이 경로 시작이 누락되었습니다. 다른 클래스를 선택한 다음 문제가있는 클래스로 돌아갑니다. 모든 것이 정상입니다
claude31

15

나를 위해 해결 된 단계는 다음과 같습니다.

  1. View (storyboard / xib)에서 Class name reference를 제거하고 저장하십시오.
  2. 클래스 이름을 다시 추가하고 저장하십시오.
  3. 깨끗하고 빌드;

완료!


10

나는 같은 문제가 있었다. 솔루션 아래에서 피곤했지만 작동하지 않았습니다.

  1. Clean Project (cmd + shift + k) 심지어 Clean Project Build (cmd + shift + alt + k)
  2. Deleted Derived dataModule Cache content

이 문제에 대한 해결 방법은 다음과 같습니다.

  1. 소스 코드 파일로 이동하여 IBOutlet / IBAction수동으로 작성 (복사 붙여 넣기 선호)

스크린 샷 1

  1. 그런 다음 스토리 보드 파일로 이동하고 Utilites창 열기
  2. 이동 Connection Inspector
  3. 그런 다음 연결 IBOutletIBAction인터페이스 빌더와 소스 파일에 작성합니다.

스크린 샷 2


콘센트 / 액션 드래그가 전혀 작동하지 않았지만 수동으로 이렇게하면 모든 것이 제대로 작동합니다.
Jason

연결을위한 표준 대체 방법입니다. 라디오 버튼 동작의 경우 유일한 방법은 AFAIK입니다. 스토리 보드에서 컨트롤러를 마우스 오른쪽 버튼으로 클릭하고 기능을 찾은 다음 연결할 수 있습니다.
curt

8

나는 같은 문제가 있었다. Manualcontrol-drag로 콘센트를 만들려고 할 때 X-Code 항목 보다 선택된 것을 깨달았습니다.

여기에 이미지 설명을 입력하십시오

자동으로 설정하면 효과가 있습니다.

여기에 이미지 설명을 입력하십시오


나는이 정확한 문제가 있었다. 그 차이도 눈치 채지 못했습니다.
Joshua Dance

큰!!! 이 버그 정리 프로젝트에서 xCode를 다시 시작하고 파생 데이터를 삭제하는 데 많은 시간을 잃어 버렸지 만 그것은 나를 위해 일한 솔루션이었습니다! 고마워요!
Anton Eregin

7

프로그래밍 방식으로 레이블 및 텍스트 필드를 만든 다음 코드 왼쪽의 작은 빈 원에서 스토리 보드의 구성 요소로 Command-Dragged를 사용 하여이 문제를 해결했습니다. 요점을 설명하려면 :을 작성한 @IBOutlet weak var HelloLabel: UILabel!다음 Command를 누르고 스토리 보드의 구성 요소로 코드를 드래그했습니다.


이 솔루션은 나를 위해 완벽하게 작동했습니다! @IBOutlet weak var myButton: UIButtonI 와 별도로 동일한 프로세스를 사용 @IBAction func doSomething(_ sender: Any) { }하여이 기능을 스토리 보드의 UIButton 에 연결했습니다 . @KuboAndTwoStrings
Nii Mantse

6
  1. 작업중인 프로젝트를 닫습니다.
  2. 프로젝트의 [DerivedData] 폴더를 삭제하십시오. (이 폴더는 프로젝트 폴더 안에 있거나
    ~/Library/Developer/Xcode/DerivedData/
    (프로젝트) / 안에 있거나 ) 사용자가 설정 한 다른 곳에있을 수 있습니다.
  3. 프로젝트를 다시 시작하십시오.

4

이 버그는 XCODE 9에서 찾을 수 있으므로 더 쉬운 해결 방법을 찾았습니다.

1 단계는 뷰 컨트롤러로 이동하여 아래 예제와 같이 연결하려는 속성을 수동으로 작성하십시오. 아래 형식을 사용하십시오.

@IBOutlet 약한 var questionStackView : UIStackView!

2 단계는 스토리 보드로 가서보기 또는 1 단계에서 생성 한 속성에 연결하려는 모든 것을 연결합니다.

위의 방법으로 파생 데이터를 제거하고 정리하는 시간을 절약 할 수 있습니다.


3

클래스 이름을 바꿀 때이 버그가 발생했습니다. 그런 다음 아래 단계에 따라 해결했습니다.

  • Xcode 메뉴에서-> Product->Clean
  • Restart Xcode

이것은 나를 위해 충분히 재미있게 만든 솔루션이었습니다.
조셉 아스트라한

2

필자의 경우 이것은 bc 였고 IB에서 새 UIViewController 파일을 선택한 다음 Connections Inspector에서 이전 연결을 먼저 제거하지 않고이 새 컨트롤러로 Ctrl 키를 누른 채 드래그하려고했습니다. 먼저 제거하고 다시 시도하십시오.


2

나를 위해 오른쪽 탭> 현지화에서 영어 확인란을 선택했을 때 효과가있었습니다. 처음에는 Base 만 확인되었습니다. 그 후 나는 더 이상 문제가 없었다. 도움이 되었기를 바랍니다!


2

여기에 이미지 설명을 입력하십시오

내가 선택한 자동 ViewController.swift 파일을 선택하는 옵션을 선택합니다. 그런 다음 콘센트를 사용할 수 있습니다.


2

이 오류를 제거하려면 다음 두 단계 만 수행하십시오.

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

이제 조치 또는 콘센트를 추가 / 연결하십시오.

여러 번 나를 위해 잘 작동합니다.


1

프로젝트에 Swift파일을 추가했을 때 발생 Objective-C했습니다.
따라서이 상황에서 할 수있는 일은입니다. .

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

이것을 위해! 나는 이미 30 분 동안이 문제를 스스로 해결하려고 노력했다. 스토리 보드에서 이와 같은 문제는 해결하기 쉽습니다. 감사! 이것은 많은 도움이되었습니다!
글렌

0

가장 간단한 해결책 : xCode 7 및 iOS 9를 사용했습니다.

당신의 .m에

#import "VC.h"삭제

.m을 저장하고 콘센트를 다시 연결하십시오.


0

xCode 7과 iOS 9를 사용했습니다.

당신의 .m에

지우다 #import "VC.h"

.m을 저장하고 콘센트를 다시 연결하십시오.

당신의 .m에

더하다 #import "VC.h"

.m을 저장


0

이 중 어느 것도 나를 위해 일하지 않았지만 나는 이것을 알아 냈습니다.

스토리 보드 내부 나는 나중에 내가 다시 붙여 넣기, 클립 보드에 대응의 ViewController를 복사하고 삭제.

갑자기 모든 것이 다시 매력처럼 작동했습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.