저는 오랫동안 Obj-C 개발자 였지만 다른 모든 사람들처럼 Swift에 익숙하지 않았으며 저의 머리에서 긁어 모았습니다. Obj-C로 작성된 이전 튜토리얼을 변환하려고합니다."유형 문자열이 프로토콜 StringLiteralConvertible을 준수하지 않습니다."
나는 "동물"클래스는과 같이 선언 :
:class Animal
{
let title: String
let image: UIImage
let creator: String
init(title: String, image: UIImage, creator: String)
{
self.title = title
self.image = image
self.creator = creator
}
}
그리고 다른 클래스에서
, 내가 지금 같은 클래스의 속성으로 선언 동물 인스턴스의 배열을 원하는let animals: [Animal]
그리고 (실패) 초기화과 같이 :
animals = [Animal(title: "Sleeping Cat", image: UIImage.imageNamed("ID-101.jpg")
creator:"papaija2008"),
...
...
]
나는 t에서 빌드 오류를 얻고있다 그는 게시물의 제목처럼 읽는이 배열 초기화 프로그램의 첫 번째 줄 : "유형 문자열이 프로토콜 StringLiteralConvertible을 준수하지 않습니다". String 객체에 문자열 리터럴을 할당 할 수 있습니까? 그건 불가능 해 보입니다. 어떤 규칙이 위반되며 어떻게 해결합니까? 사전에
감사합니다!
이 오류는 많이 발생했으며 일반적으로 특정 문자열 관련 오류가 잘못되었음을 의미하지는 않습니다. 함수에 전달하는 매개 변수가 어떤 식 으로든 부적절한 경우가 종종 있습니다. 나는 각각의 관련 매개 변수에 대해 명시적인 유형으로'let'을 사용하고 그런 변수를 전달함으로써 이와 같은 문제를 해결했습니다. 컴파일러는 일반적으로 더 유용한 오류 메시지를 제공합니다. – Bill