방금 Xcode 9로 업데이트하고 신속한 3에서 신속한 4로 내 앱을 변환했습니다. 문자열을 사용하여 축과 다른 변수에 레이블을 지정하는 그래프가 있습니다. 그래서 moneyAxisString = "Money"가 있습니다.스위프트 4 '[String : AnyObject]?'유형의 값을 변환 할 수 없습니다. 예상 인수 형식 '[NSAttributedStringKey : Any]?'
:attributes = [
NSAttributedStringKey.foregroundColor: fieldColor,
NSAttributedStringKey.font: fieldFont!,
NSAttributedStringKey.paragraphStyle: style
]
이제 내 응용 프로그램이 컴파일되지 않습니다 내가 메시지를 얻고을 다음과 같이
속성moneyAxisString.draw(in: CGRect(x: CGFloat(coordinateXOriginLT + axisLength/3), y: CGFloat(coordinateYOriginRT + axisLength + 5 * unitDim), width: CGFloat(300 * unitDim), height: CGFloat(100 * unitDim)), withAttributes: attributes as? [String : AnyObject])
정의 사전입니다 : 는 이전에이 코드를 사용하여 그릴 수 있었다
'[String : AnyObject]?'유형의 값을 변환 할 수 없습니다. 예상 인수 형식 '[NSAttributedStringKey : Any]?'
다운 캐스트를 제거 할 때 : 'NSDictionary'유형의 값을 예상 인수 유형 '[NSAttributedStringKey : Any]'으로 변환 할 수 없습니다. 그리고 그것은 다음과 같이 말합니다 : Insert as '! [NSAttributedStringKey : Any] '. 또한 속성에 대한 코드를 줄이면 "표현식이 사용되지 않는 l- 값으로 해석됩니다"및 "예상 표현식"및 "행의 연속 문장은 ';'으로 구분해야합니다."; "삽입하십시오. 관련성이 있습니다 처음에 속성을 다음과 같이 정의했습니다 : var attributes : NSDictionary = [:] –
'NSDictionary' 대신'var attributes = [NSAttributedStringKey : Any]()'를 선언하면, 주석을 제거 할 수도 있습니다. 어쨌든. – vadian