ios - Xcode 6 버그:인터페이스 빌더 파일의 알 수없는 클래스




xcode 인터페이스 빌더 (20)

@ gfrs가 맞다고 말하면 모듈을 설정해야합니다. 그러나 한 번 Class 드롭 다운에 내 클래스가 나열되지 않았다는 문제가 발생했습니다. 결국 신속한 파일을 제거하고 Xcode를 다시 시작한 다음 파일을 다시 만들었습니다. 마지막으로 클래스가 나열되고 스토리 보드에서 사용할 수 있습니다.

또한 내가 겪은 '진짜'문제를 해결하는 것처럼 보이는 이 대답을 살펴보십시오.

Xcode 6 베타 4로 업그레이드했는데 이제 내 앱이 계속해서 메시지와 충돌합니다.

인터페이스 빌더 파일의 알 수없는 클래스 X

Xcode가 내 스토리 보드에 링크 한 사용자 정의 클래스를 찾을 수 없기 때문에 충돌이 발생하지만 Xcode 인터페이스에 올바르게 링크되어 있음을 보여줍니다.

나는 모든 것이 올바르게 연결되어 있다는 긍정적입니다. 내 유일한 옵션은 전체 스토리 보드 파일을 삭제하고 처음부터 다시 시작하는 것입니다. 왜냐하면 어떻게 든 손상되었을 수 있기 때문입니다.

편집 : 나는 또한 청소를 시도했다는 것을 덧붙이고 싶다. 시뮬레이터를 리셋하고 빌드 단계를 망친다.


Laura가 제안한 라인을 따라이 파일을 수정했지만 파일을 다시 만들 필요가 없었습니다.

Xcode 4를 사용하여 Project Navigator에서 불평 할 클래스가 들어있는 .m 파일을 선택합니다.

보기 -> 유틸리티 -> 파일 검사기보기 (오른쪽의 파일 검사기가 .m 파일 정보와 함께 표시됨)

대상 구성원 섹션을 열고 대상이이 .m- 파일에 대해 선택되었는지 확인하십시오

내 .m 파일을 프로젝트에 추가 할 때 어떤 이유에서든 내 기본 대상에 추가하지 않았기 때문에 언급 한 오류가 발생했습니다.


귀하의 학급에 적합한 타겟 멤버십 이 있는지 확인하십시오.


나는 ChikabuZ가 제안한 것과 정반대로 그것을 고쳤다. (지적 해 주셔서 고마워.) 스토리 보드 파일에서 다음을 찾으십시오.

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

이것을 다음과 같이 바꿉니다.

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" sceneMemberID="viewController">

Swift 컴파일러와 Xcode 6에서 버그를 해결하는 데 얼마나 많은 시간이 걸릴지 믿을 수 없습니다.


나는 이것을 도처에 봤다. 내 프로젝트 폴더를 데스크톱으로 이동하도록 요청한 1 명의 친구를 만날 때까지 아무 것도 대답하지 못합니다. 방금 자동으로 작동했습니다. 분명히 많은 폴더에 프로젝트 폴더가 있다면 XCODE는 실제로 중단됩니다.


나는이 질문을 타이핑 할 때이 문제를 해결했다. 나는 내 질문에 답하고 Xcode 6 베타 4를 사용할 때이 문제에 직면 할 수있는 다른 사람들을 위해 여기에 남겨 둘 것이라고 생각했습니다.

이 문제를 해결하려면 Storyboard에서 각 사용자 정의 클래스 객체를 선택해야합니다.이 객체에는 사용자 정의 뷰, 심지어 사용자 정의 뷰 컨트롤러도 포함됩니다.

그런 다음 선택한 객체를 사용하여 ID 관리자를 열고 "사용자 정의 클래스"아래에 모듈 옵션이 표시되어야합니다. 모듈 텍스트 상자 안을 클릭하고 Enter 키를 누릅니다.

그게 다야! 내 모든 사용자 지정 개체에 대한 현재 모듈은 Xcode 6 베타 4에서 어떻게 든 내부적으로 잘못 설정되어 있어야합니다. 그러나 관리자의 시각적 표시는 없습니다.

모듈 텍스트 상자에서 Enter 키를 누르지 않으면 오른쪽 화살표를 선택하고 현재 모듈을 수동으로 선택한 다음 텍스트 상자를 지우고 Enter 키를 누릅니다. 클래스 텍스트 상자에서 Enter 키를 눌러 볼 수도 있습니다 (일반적으로 다른 문제를 해결하기위한 것이지만).

다음은 일을 더 분명하게하는 이미지입니다.


내 대답 : 첨부 된 스크린 샷과 같이 맞춤 모듈을 맞춤 포드 이름 (예 : 맞춤 클래스 이름)과 동일하게 설정합니다.

이 솔루션은 특정 사례를 위한 것입니다 : 포드 (또는 카르타고 ) 프레임 워크에서 사용자 정의 보기 클래스.

인프라 : XCode8, Swift3


내 솔루션 (Xcode 8.1 Swift 3.0) :

인터페이스 빌더 파일에서 알 수없는 클래스 xxx .

StoryBoard를 소스 코드로 열고 xxx를 검색하십시오. 값 xxx 를 포함하는 속성을 제거하십시오. 빌드하고 실행하십시오.


내 프로젝트에서 Main.storyboard , LaunchScreen.xib 파일 및 기본 ViewController 클래스를 제거했을 때 Xcode 6.1에서이 문제가 발생했습니다.

Info.plist 에서 Launch Screen FileMain Interface 항목을 삭제하여 문제를 해결했습니다.


때로는 Xcode에 customModule="AppName" customModuleProvider="target" 누락 customModule="AppName" customModuleProvider="target"

이 문제를 해결하려면 스토리 보드를 소스 코드로 열고이 줄을 다음과 같이 바꿉니다.

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
sceneMemberID="viewController">

이에:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
 customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

모든 뷰 컨트롤러 및 뷰에 대한 ID 관리자의 사용자 지정 클래스에서 모듈 이름을 입력하여이 문제를 해결했습니다 (불행히도 드롭 목록에 아무 것도 표시되지 않습니다 ...).

대상 공급자를 지정해야 할 수도 있습니다. 이 목적을 달성하기 위해 소스 코드 모드에서 스토리 보드를 열고 ViewController와 View 각괄호에 "customModuleProvider"속성을 추가 할 수 있습니다.


새 대상을 추가 한 후 '새 파일'대화 상자를 사용하여 새 클래스를 만들었지 만 실수로 새 대상과 작성 대상 대화 상자의 원래 대상을 확인하지 못했기 때문에 개체가 원래 대상. 해결 방법은 소스 파일을 삭제하고 (참조 제거 만) '파일 추가'를 사용하여 다시 추가하는 것입니다. 이번에는 두 대상을 모두 확인하십시오.


스토리 보드를 Swift 프로젝트에서 Objective-c 프로젝트로 이식 할 때 vvkuznetsov의 대답에 주목하여 동일한 식별자를 사용하는 두 프로젝트가 나왔습니다. "제품 -> 청소"를 선택하고 모듈 및 클래스 텍스트 필드에서 Enter 키를 누릅니다. 문제는 사라졌다.


신속한 클래스의 이름을 변경 한 후에이 문제가 발생했습니다. @objc 지시문을 사용하여이를 해결했습니다.

@objc(ForumTopicListViewController) class ForumTopicListViewController

알 수없는 클래스 파일을 선택하고 파일 관리자 탭을 열고 Target Membership 에서 Target Membership 이름을 확인하십시오. 됐어.


이 단계는 나를 위해 일합니다.

1) 파생 데이터를 지 웁니다.
2) .h 및 .m 파일을 제거하십시오.
3) .h 및 .m 파일을 다시 만듭니다.


이것은 나를 위해 일했다 ..

해당 파일 (예 : ViewController.m)이 추가되었는지 여부에 관계없이 컴파일 된 소스를 확인하십시오. 제 경우 ViewController 파일이 추가되지 않아서 오류가 발생했습니다.


제 경우에는 프로젝트 설정에서 Other Linker Flags-ObjC 플래그를 추가하여 작동하도록했습니다. 또한 -all_load 플래그로 시도하고 너무 잘 작동합니다.


해결책은 저를 위해 달랐습니다. 클래스의 .m을 대상의 컴파일 된 단계 컴파일 소스에 추가해야합니다.

희망이 도움이!


Xcode 8 에서이 문제에 직면했습니다. 문제를 해결하기 위해 텍스트 편집기에서 스토리 보드를 수정해야했습니다.

일반적으로 컨트롤을 customModuleProvider 컨트롤 엔티티에서 customModulecustomModuleProvider 를 제거하십시오.

나를 위해 트릭을 했어.







uistoryboard