2014-09-29 2 views
17

의 난 '이름'라는 클래스를 포함하도록 노력하고 내가 오류가있어 :스위프트 컴파일러 오류 : 사용이 해결되지 않은 식별자 '이름'

Swift Compiler Error: Use of unresolved identifier 'name' 

클래스가 존재하고 컴파일 에러를 포함하지 않습니다.

+0

당신이 클래스가 매우 도움이 될 것이라고 선언하는 방법을 정확히 보여주는 코드의 조각을 추가, 특히 여기에 오는 다른 사람들에게 똑같은 문제에 직면하게됩니다. –

답변

58

몇 가지 가능한 문제점이있을 수 있습니다. 클래스의

  1. 하나는 테스트 대상을 가지고 있으며, 다른 하나는하지 않습니다. 모든 수업을 시험 목표에 포함하거나 전혀 포함시키지 않아야합니다.

  2. Objective C 클래스 인 경우 클래스가 ObjectiveC 브리징 헤더 파일에 있는지 확인하십시오.

  3. NSManagedObject 하위 클래스 인 경우 클래스 선언 앞에 @objc(className)을 추가하십시오. 그것은 다른 프레임 워크의 일부 경우

  4. , 클래스 또는 함수가 나도이 일을했다 public

+0

실패의 예, 제발 ... – Grimxn

+3

예를 들어, 한 클래스에 테스트 대상이 있고 두 번째 클래스에 –

+0

이 없으면 빌드 대상이 하나 뿐이며 여전히 작동하지 않습니다. 더 이상의 팁 Vojtech? –

6

있는지 확인하십시오. 첫 번째 클래스가 테스트 모듈에 포함되어 있고 "이름"이 아니라는 것을 알 수 있습니다. 간단히 말해서 테스트에 클래스를 포함하면 참조하는 모든 클래스가 테스트에 있어야합니다.

5

이 문제도 발생했습니다. 클래스 2의 코드에서 클래스 1을 참조하려고했습니다. 클래스 2에 A와 B의 대상 멤버십이 있고 클래스 1에만 클래스 A의 대상 멤버십이있었습니다.

유틸리티 탭 (Xcode 창의 상단 막대에서 가장 먼 오른쪽 버튼)을 클릭하고 대상 멤버십 하위 섹션에서 두 클래스에 대해 동일한 상자가 선택되어 있는지 확인하십시오.

-1

목록에 하나 더 추가하십시오.

  1. 다른 프레임 워크의 일부인 경우 "활성 아키텍처 만 빌드"설정이 동일해야합니다.
+0

해당 설정을 사용하면 앱을 출시 할 수 없습니다. 아키텍처를 지원하는 프레임 워크를 사용해야합니다. –

+0

사실이 아닙니다. "활성 아키텍처 만 구축"이 "릴리스"에 대해 "아니요"로 설정된 경우 응용 프로그램을 릴리스 할 수 있습니다. 내 프레임 워크가 "디버그"에 대해 "예"로 설정되었지만 내 응용 프로그램에 "디버그"에 "아니오"가있는 경우 "사용되지 않은 식별자 사용"오류가 발생했습니다. –

1

있어 문제가

대상에 의해 해결 -> 페이즈 빌드 -> 컴파일 소스 -> 클래스 파일

관련 문제