2017-03-21 1 views
1

저는 Core Data로 작업하고 있습니다. 다음은 클래스입니다 (편집기에서 생성).Swift3에서 코어 데이터가있는 이상한 클래스 이름이 충돌합니다.

public class Tag: NSManagedObject { 

} 

그리고 위와 같은 이름을 가진 열거 형을 정의했습니다.

enum NoteListType { 
    case Tag 
    case Album 
} 

빌드 할 때이 오류 메시지가 나타납니다. 선언되지 않은 유형 '태그'의

사용

나는 그것의 정의로 이동합니다 Tag을 클릭 CMD

, 두 개의 옵션을 보여줍니다. 도와주세요. 미리 감사드립니다.

업데이트 :
나는 여전히 열거의 경우 이름을 변경하려하지만 undeclared type을 얻었다. Xcode 8.2.1 및 Core Data로 인해 발생했을 수 있습니다. 그리고 Github에서 프로젝트를 게시했습니다. 다음은 link입니다.

+1

명명 규칙을 준수합니다. 클래스 및 열거 형 이름은 대문자로 시작하며 열거 형은 소문자로 시작합니다.이 문제를 해결할 수 있습니다. – vadian

+0

이것을 재현 할 수 없습니다. – Sweeper

+0

@vadian 저는 Swift 3에서 이것이 권장됨을 압니다. 그러나 제 프로젝트는 지금 Swift 3으로 전환되었습니다. 나는 이것을 시도 할 것이다, 고마워! – Lumialxk

답변

6

을 나는 당신의 자식 프로젝트를 다운로드하고이 충돌로 인해 각 파일의 대상 회원으로 발생하는 것을 발견 개체와 모두가 대상이 때문에 OS는 참조되는 클래스 감지 할 수 없습니다 . Entity에서 멤버쉽을 체크 아웃하고 태그 만 앨범이 검색되었습니다. 일부 장소에서 NSManagedObject를 직접 입력하려고 했으므로 코드를 컴파일 할 수 없었지만 컴파일 오류가 발생했습니다. 아래 스크린 샷을 참조하십시오. enter image description here

이 정보가 도움이 되었기를 바랍니다.

+0

당신의 대답으로, 나는이 문제를 마침내 해결했습니다. 감사! – Lumialxk

1

이 시도 ..

enum NoteListType { 
    case tag 
    case album 
} 
+0

대개 열거 형은 소문자 여야하므로 좋습니다. – picciano

관련 문제