Swift 4 Cannot convert value of type '[String : AnyObject]?' to expected argument type '[NSAttributedStringKey : Any]?'

前端 未结 4 2036
悲哀的现实
悲哀的现实 2020-12-19 13:16

I have just updated to Xcode 9 and converted my app from swift 3 to swift 4. I have graphs which use strings to label the axes and other variables. So I have a moneyAxisStri

4条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-19 13:49

    It's a type mismatch: [String : AnyObject] is clearly not [NSAttributedStringKey : Any]

    ⌥-click on NSAttributedStringKey to see the declaration.


    The solution is to declare attributes as

    var attributes = [NSAttributedStringKey : Any]()
    

    to remove the down cast

     ..., withAttributes: attributes)
    

    and to write simply

    attributes = [.foregroundColor: fieldColor,
                  .font: fieldFont!,
                  .paragraphStyle: style]
    

提交回复
热议问题