"ViewController라는 클래스에 대한 정보를 찾을 수 없습니다."
이 버그는 제가 Xcode(4.6.3)를 사용하기 시작한 이후로 저를 미치게 만들었습니다.Storyboard 항목을 코드에 연결하려고 할 때마다 다음 오류가 발생합니다.
이름이 ViewController인 클래스에 대한 정보를 찾을 수 없습니다.
이 문제는 사용자 지정 클래스에서도 발생합니다.다음과 같은 방법을 시도해 보았습니다.
- 대리자 데이터를 삭제하는 중입니다.
- 클래스를 제거하고 다시 추가합니다.
- Xcode를 다시 시작하는 중입니다.
- Xcode를 다시 설치하는 중입니다.
클래스에 관계없이 프로젝트에서 연결을 만들기 위해 Ctrl+Drag를 사용할 수 없습니다.새 템플릿 응용 프로그램에서도 동일한 문제가 발생합니다.수동으로 코드를 입력한 다음 ctrl-drag를 누르면 연결이 가능하지만 자동으로 추가할 수 없습니다.제가 지금까지 인터넷에서 찾을 수 있었던 것은 아무것도 도움이 되지 않았습니다.조언은?
이 문제를 해결한 것은 실제로 프로젝트에서 클래스를 삭제한 것입니다.
단계:
- 프로젝트 파일 탐색기(왼쪽 패널)에서 클래스를 찾고 -> 삭제를 마우스 오른쪽 버튼으로 클릭합니다.
- 참조 제거(클래스를 영구히 잃게 되므로 휴지통으로 이동하지 마십시오)
- 클래스가 포함된 폴더에서 마우스 오른쪽 단추를 클릭합니다. -> 파일을 다음에 추가...
- 파일 시스템에서 방금 삭제한 클래스 찾기
이것은 Xcode가 클래스를 스토리보드에 다시 연결하도록 강요하는 것처럼 보입니다.
참고: 다음은 작동하지 않았습니다.
- Xcode 닫기
- 프로젝트 정리
- 스토리보드에서 클래스 이름 삭제 후 다시 입력
나는 이것이 애플 측의 버그라고 생각합니다.
누군가가 여전히 이것 때문에 좌절할 경우를 대비해서, 일을 잘 진행시킬 수 있는 요령이 있습니다.
수동으로 아웃렛을 클래스에 입력합니다. 예:@IBOutlet weak var someView: UIView!코드에서 IB 또는 스토리보드의 보기로 끌어다 놓습니다.이후 IB / Storyboard에서 클래스로 드래그하여 연결하고, 보조 편집자가 "자동"에서 클래스를 인식하는 등의 작업을 수행할 수 있습니다.
매번 작동합니다.
오른쪽 열의 대상 멤버 자격에서 제거하고 다시 추가하는 것이 효과가 있었습니다.
VC가 클래스 파일을 참조하지 않기 때문에 Xcode가 발생할 수 있습니다.이에 대한 간단한 솔루션은 다음과 같습니다.
주어진 대로 수동으로 속성을 씁니다.
class YourClassName{
@IBOutlet weak var YourTableName: UITableView!
}
이렇게 하면 @IBOutlet 앞에 빈 링크 기호가 생성되고, 보조 편집기에서 프로젝트를 연 다음 링크 기호를 클릭하여 연결할 뷰(I have with TableView)로 드래그하면 끝입니다.해피 코딩을 즐기세요!!!
2017년 4월 Xcode 8에서 이 문제가 발생했습니다.
코드를 통해 아웃렛을 만들고 수정된 것을 컴파일하기만 하면 됩니다.예:
@IBOutlet weak var containerViewHeight: NSLayoutConstraint!
Xcode를 사랑해야 합니다.
편집: Xcode 9에서 여전히 발생하고 있습니다.
저는 모든 것을 시도했지만 효과가 없었습니다. 그래서 저에게 효과가 있었던 것은:
- 빌드 폴더 및 프로젝트를 정리합니다.
- 프로젝트 열기(창 -> 프로젝트)
- 목록에서 프로젝트를 찾고 파생 데이터 삭제
- X코드 닫기
- 열려 있는 창을 다시 열지 않고 컴퓨터 다시 시작
- Xcode 실행
- 일!
모든 뷰 컨트롤러를 인식하지 못했기 때문에 모든 파일을 삭제하고 다시 추가하는 것은 큰 프로젝트이기 때문에 선택사항이 아니었습니다.
다음 단계들이 나에게 효과가 있기를 바랍니다 당신에게도 효과가 있기를 바랍니다.
1 - Xcode를 닫은 후 프로젝트를 다시 열어야 합니다.
2 - 프로젝트 파일 인덱싱 대기
3 - 작동 여부 확인
4 - 그래도 작동하지 않으면 5단계를 따르세요. 만족스럽지 않다면 :)
5 - 프로젝트 목표 정리 및 구축
저는 지금까지 몇 가지 답을 조합해서 해야 했습니다.
- 스토리보드에서 사용자 지정 클래스 이름을 제거합니다.
(스토리보드에서 뷰 컨트롤러 왼쪽 상단의 노란색 버튼 클릭 -> ID 검사기(옵션 + 명령 + 3)로 이동 -> 상단의 사용자 지정 클래스 이름 삭제)
- 뷰 컨트롤러 파일에 대한 참조를 제거합니다.
(파일 우클릭 -> 삭제 -> 참조 제거)
- 뷰 컨트롤러 파일을 프로젝트에 다시 추가합니다.
(파일이 있던 폴더를 마우스 오른쪽 단추로 클릭 -> "[프로젝트]에 파일 추가")
- 사용자 지정 클래스 이름을 다시 스토리보드에 추가합니다.
저에게는 다음과 같은 것이 효과가 있었습니다.
'clean' 및 'clean build folder'를 수행합니다(제품 메뉴에서 'option'을 눌러 'clean build folder' 명령을 받습니다).
X코드 중지
터미널에서 파생된 데이터 폴더로 이동합니다.
(/Users//Library/Developer/Xcode/Derived Data)
프로젝트에 대해 파생된 데이터 dir를 삭제합니다.
허공에 죽은 닭을 흔듭니다.
시작 X코드
만약 사람들이 위의 것들을 시도했지만 여전히 효과가 없다면, 저에게 효과가 있었던 이상한 속임수는 흰색 공간에 콘센트를 추가하는 것이었습니다.추가할 줄의 바로 위 또는 아래에 다른 줄이 없는 경우에 작동합니다.이상하지만, 효과가 있었어요!
버튼에서 코드로 연결을 끄는 대신 다음과 같이 작동했습니다.
- 원하는 스토리보드 항목을 클릭합니다.
- 연결 검사기 열기(오른쪽 패널)
- + 원에서 코드 영역으로 끕니다.이와 같은 경우:

제 코드를 이런 식으로 연결한 후, 그 이후로 정상적으로 작동했습니다.
목표물을 지켜보세요!
저는 Xib를 사용하여 새로운 클래스를 추가하고 있었는데, 이 문제를 보기 시작했고 여기에 있는 답을 살펴보고 변화가 있는지 확인하는 데 많은 시간을 보냈습니다.
작업 공간에 여러 개의 대상이 있기 때문에 종종 대상을 전환해야 합니다.
새 파일을 추가하면 Xcode에서 재색인이 시작됩니다.하지만 만약 당신이 잘못된 대상을 가리키고 있다면 색인화는 무의미할 것이고 Xcode를 연결하기 위한 드래그 동안 당신의 클래스를 찾을 수 없을 것입니다.
요컨대
1단계.
색인화를 수행할 수 있도록 올바른 대상 집합이 설정되어 있는지 확인합니다.
이것은 저에게 효과가 있었습니다.
- '빌드 폴더 정리'를 수행
('옵션' 키를 누른 상태에서 "제품" 메뉴로 이동하여 액세스합니다. - 제품 메뉴에서 간단한 "Clean"(CMD-Shift-K)을 수행합니다.
- Xcode가 파일을 컴파일할 수 있도록 프로젝트를 빌드합니다.또한 필요한 경우 파일을 인덱싱합니다.
참고로, 이것이 도움이 되었는지는 모르겠지만 위 단계를 수행하기 전에 파생 데이터도 삭제했습니다(Xcode 기본 설정 > 위치).
storyBoard에서 ViewController를 선택하고 오른쪽 패널/"Customer class"/"class"에서 현재 값을 삭제한 다음 컨트롤 클래스를 다시 추가합니다(유형: "SampleViewController"...). --> 입력합니다.
저는 이 모든 답변을 시도해 보았는데, 저에게 문제는 Xcode가 파일을 인덱싱할 수 없는 것과 관련이 있었습니다.저는 Xcode를 종료하고 프로젝트를 다시 시작하는 것으로 이 문제를 해결했습니다.물론 위의 모든 해결책을 시도한 후에 그렇게 했습니다 :p
Product > Clean (Command - Shift - K)에서 고쳐줬어요!
이것은 이 문제를 해결하기 위해 제가 한 가장 쉬운 단계입니다.
- 나는 프로젝트를 청소합니다.
- 보기 컨트롤러에서 새 단추를 끕니다.
- 프로젝트를 빌드합니다.
- 새로 끌어온 버튼을 클래스(콘센트 또는 동작)에 연결합니다.
- 그럼 voila!!!이제 다른 콘센트를 클래스에 다시 연결할 수 있습니다!
제 테스트 경험상 Xcode에 연결된 클래스를 삭제하고 파일을 다시 추가하면 이 문제가 발생합니다.
보통 저에게 이런 일이 생기면 저는 아직 수업 코드를 저장하지 않았습니다.코드로 이동하여 cmd+s를 누르면 문제가 올바르게 해결되는 경우가 많습니다.
프로젝트를 청소하고 재구축하기만 하면 됩니다.
위의 단계 중 어떤 것도 저에게 효과가 없었지만, 제가 문제를 발견했을 수도 있다고 생각합니다.적어도 그것은 나에게 효과가 있었고, 그것은 Xcode의 버그가 아닙니다.
보조 편집기에서 viewController에 대한 코드가 있는 창의 맨 위를 봅니다.오른쪽의 세 번째 옵션은 "수동"으로 표시되지만 "자동"으로 표시되어야 합니다.일단 이것을 바꾸자, 그 문제는 해결되었습니다!
Xcode를 다시 시작하면 작동합니다.
좋아요, 여러분들은 거의 모든 상위 답변을 보았지만 저에게는 아무 것도 효과가 없었습니다.
그래서 저에게 효과가 있었던 것은 다음과 같습니다.
- 를 합니다.
Derived DataXcode 프로젝트의 주소입니다. 작업은하여 수행할 수 .
Xcode -> Preferences -> Location Tab -> Derived Data
Close Xcode이제 파생된 데이터 위치로 이동하여 프로젝트의 폴더를 삭제합니다.
이제 Xcode와 voila를 엽니다!
비슷한 문제가 발생했습니다. "이름을 가진 클래스를 찾을 수 없습니다.그 원인은 내가 알아냈을 때 바보 같은 것이었습니다.항목에서 인터페이스로 끌지 않도록 하십시오. 항목이 클래스 자체로 끌리는지 확인합니다.
다 해봤어요!
UIViewController의 클래스 이름에 "Test"라는 단어가 포함되어 있지 않은지 확인합니다.
버그 보고서가 제출되었습니다.
저는 문제의 .m과 .h 파일을 다시 만들고 "ViewController"처럼 일반적인 이름이 아닌 원래 이름을 부여하려고 합니다.해당 파일에서 수행할 작업과 ViewController(예: "PizzaDecoraterViewController")로 끝나는 작업을 더 시도합니다.
그런 다음 해당 파일에 연결할 View 컨트롤러를 선택합니다.내부 개체가 아닌 View 컨트롤러를 선택해야 합니다.맨 아래에 있는 검은색 막대("First Responder" 및 "Exit" 아이콘이 있는 막대)를 클릭합니다.전체 View 컨트롤러의 윤곽선은 파란색이어야 합니다.그런 다음 Identity Inspector의 Custom Class 섹션으로 이동하면 회색으로 표시됩니다."첫 번째 필드에 "UIViewController"가 표시됩니다.이 필드에 연결할 .h 또는 .m 파일의 이름을 입력합니다(PizzaDecorator 입력 시작...).약간의 자동 완성 작업을 수행해야 합니다.그런 다음 ENTER를 누릅니다.
Assistant Editor(보조 편집기)를 열 때 끌어 놓으려는 파일이 실제로 올바른 파일인지 확인합니다.
위에서 말한 것처럼 모두 수행했다면 효과가 있을 것입니다.
제가 @Chris Harrison의 답변에 대해 언급했듯이, 그러한 것들은 저에게 효과가 없었지만, https://stackoverflow.com/a/16182672/1449799 에서처럼 파생 데이터를 삭제함으로써 작동하게 되었습니다.
파일(참조만)을 삭제하고 파일을 다시 추가합니다.
저의 경우, 효과가 있었던 것은 다음과 같습니다(조금 이상하지만 효과가 있었습니다).
데이터 소스(예: UITableViewDataSource와 같은 ViewController의 확장)를 추가합니다.Xcode는 ViewController를 다시 로드하려고 시도합니다.그런 다음 프로토콜의 몇 가지 방법을 작성했습니다(처음에는 Xcode가 방법을 자동으로 완료하지 않고 수동으로 작성했습니다). 그런 다음 IBOutlet을 추가하고 마지막으로 데이터 소스를 제거했습니다.
예:
class TestViewController:UIViewController{
// This viewController presents “Could not find any information for class named ViewController”
}
extension TestViewController:UITableViewDataSource{
//Add Some methods of the protocol, Xcode will try to autocomplete and then it's going to reload the class, from then you can add your IBOulets / Actions .. And remove this extension if you don't need it otherwise.
}
사용자 정의 클래스를 지정한 보기는 인터페이스 작성기에서 컴파일하지 못했습니다.표시되었습니다.@IBDesignable.
제거 중@IBDesignable그리고 나서 내 콘센트를 추가하고, 그리고 나서 그것을 표시합니다.@IBDesignable제 경우에는 문제를 해결했습니다.
언급URL : https://stackoverflow.com/questions/17735182/could-not-find-any-information-for-class-named-viewcontroller
'programing' 카테고리의 다른 글
| 문자열을 별도의 변수로 분할 (0) | 2023.05.14 |
|---|---|
| MongoDB 캐시 시스템 이해 (0) | 2023.05.14 |
| AWS 람다 함수가 다른 함수를 호출할 수 있습니까? (0) | 2023.05.14 |
| 내부의.SQL Azure의 Net Framework 데이터 공급자 오류 6 (0) | 2023.05.14 |
| 페이지를 나가기 전에 저장하지 않은 변경 사항에 대해 사용자에게 경고 (0) | 2023.05.09 |

