2014-10-23 6 views
1

최근에 iOS 8.1에서 작동 할 수 있도록 Xcode 6.1로 업데이트되었지만 최근의 최신 프로젝트에서 오류가 발생했습니다.CFString이 Hashable 프로토콜을 준수하지 않습니까?

let attributes = [kCTForegroundColorAttributeName:UIColor.blackColor().CGColor, kCTFontAttributeName: font] 

엑스 코드 6.0.1을 실행했을 때이 오류가 발생하지 않았다 :

나는 다음 줄, "! CFString 프로토콜 해쉬을 준수하지 않는"고 말하는 오류가 발생합니다. 또한 Xcode 6.1은 매우 느립니다. 내 말은, 너무 느려서 실제로 아무것도로드하지 못한다는 의미입니다. 인덱싱에는 몇 분이 걸리고 건물이 너무 길어서 앉아서 관리하지 못했습니다 ... 또한 충돌합니다.

내 주요 문제는 Hashable 프로토콜입니다. 그게 뭐야?

답변

5

이것은 CF 개체가 포함 된 사전의 형식 유추 버그 인 것으로 보입니다.

컴파일러는 첫 번째 키/값 쌍을 사용하여 [CFStringRef:CGColorRef] 유형의 사전을 유추 한 다음 CFStringRefHashable을 따르지 않으므로 컴파일하지 못했습니다.

당신은 명시 적으로 사전 유형 선언함으로써이 문제를 해결할 수 있습니다

let attributes : [String:AnyObject] = [ 
    kCTForegroundColorAttributeName:UIColor.blackColor().CGColor, 
    kCTFontAttributeName:font 
] 
+0

감사합니다 ... 시행 착오의 반 시간 후에 내 문제를 해결 –