2016-11-29 2 views
2

어떤 이유로, Swift 3.0로 변환 한 후 나는 아카이브하려고 할 때 난 단지 오류가이 오류를CIDetectorError : '(String, CIContext?, [String : Any]?) -> CIDetector'는 (String, CIContext?, [String : Any]?)로 변환 할 수 없습니다.

'(String, CIContext?, [String : Any]?) -> CIDetector' is not convertible to '(String, CIContext?, [String : Any]?) -> CIDetector?'

//When initiating 
let detector: CIDetector? = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh]) 

를 얻을. 내가 달릴 때, 모든 것이 잘 작동합니다.

+1

이 문제를 해결하는 방법 : http://stackoverflow.com/a/40463013/4045472 – bubuxu

+0

[CIDetectorTypeQRCode가 오류를 발생시킬 수 있습니다] 가능한 중복 (http://stackoverflow.com/questions/40409417/cidetectortypeqrcode-gives-error) – jk2K

답변

0

이것은 명시 적 유형 주석의 무의미한 좋은 예입니다.

는 유형의 주석을 제거하고 컴파일러 오류 메시지가 반환 형식이 아닌 선택 사항입니다한다고 유형

let detector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyHigh]) 

을 추론 할 수 있습니다.

+2

감사합니다. @vadian. 이 오류가 계속 발생합니다. 그것은 컴파일됩니다. 나는'Archive' 할 때만이 오류가 발생합니다. 이 타입은'String'이지만, 왜이 에러가 나타나는지 확실하지 않습니다. –

+0

** 보관 ** 일 때만 동일한 오류가 발생합니다. – bubuxu

0

댓글을다는 평판이 없으므로 한 달 후에 Xcode 8.1에서 여전히 문제가 있음을 알리고 싶습니다. 아카이브에서만. 나는 그 유형을 추론하고있다.

관련 문제