[swift] 유형이 내부 유형을 사용하므로 속성을 public으로 선언 할 수 없습니다.

두 개의 클래스 ContentBucket. 객체 Bucket의 배열을 포함하고 Content공용 속성을 통해이를 노출합니다. 그러나 그렇게 할 때 오류가 발생합니다.

유형이 내부 유형을 사용하므로 속성을 public으로 선언 할 수 없습니다.

여기에 이미지 설명 입력

이것이 오류를 일으키는 이유에 대한 생각이 있습니까?



답변

Content공용 클래스 의 액세스 수준도 선언해야합니다 .

public class Content {
   // some code
}

문서에 명시된대로 :

공용 변수는 공용 변수가 사용되는 모든 곳에서 사용 가능하지 않을 수 있으므로 내부 또는 개인 유형을 갖는 것으로 정의 할 수 없습니다.

클래스는 internal기본적으로 선언되어 있으므로 public공용으로 만들 려면 키워드를 추가 해야합니다.

함수에도 비슷한 규칙이 있습니다.

함수는 주변 코드에서 구성 유형을 사용할 수없는 상황에서 함수를 사용할 수 있기 때문에 매개 변수 유형 및 반환 유형보다 더 높은 액세스 수준을 가질 수 없습니다.


답변

Content 공개로도 선언해야합니다.

public class Content {}

사용 사례에 따라 Bucket내부로 선언 할 수도 있습니다. public이 경우 키워드를 생략하십시오 .


답변

내 문제는 네임 스페이스 문제였습니다.

나는 enum을 선언 Data했고 그것은 Swift Data클래스, 특히 imageData: DataCore Data 모델 내의 속성 을 망쳐 놓았습니다 .


답변