1
은과 같이 열거에 StringLiteralConvertible을 채택하려고 할 때 :StringLiteralConvertible에 열거 형을 사용할 수 있습니까?
enum Component: StringLiteralConvertible {
case Static(String)
case AnyInt
typealias ExtendedGraphemeClusterLiteralType = String
typealias UnicodeScalarLiteralType = String
init(unicodeScalarLiteral value: UnicodeScalarLiteralType) {
}
init(extendedGraphemeClusterLiteral value: ExtendedGraphemeClusterLiteralType) {
}
init(stringLiteral value: String) {
}
}
나는 다음과 같은 오류가 점점 오전 다음 초기화의 각
Variable 'self' used before initialized
합니다.
NSHipster에 따르면 올바른 프로토콜을 따르려면 문자열 리터럴을 사용하고 원하는 클래스/구조체의 개체를 반환하는 클래스 func를 재정의해야합니다. 이와 같이 :
static func convertFromStringLiteral(value: String) -> CGPoint {
return NSPointFromString(value) // CGPointFromString on iOS
}
반자동 신속 업데이트에서 변경 되었습니까? enum으로 StringLiteralConvertible을 채택 할 수 있습니까?
Swift init 메소드는 일반적으로 Objective-C에서와 같이'self'를 설정할 필요가 없지만'enum''''' 메소드는 특별한 경우입니다. 아래 @ MartinR의 대답을 참조하십시오. –