This is a new feature of Swift 4. All the Cocoa methods that take string identifiers and/or dictionary keys now have their own types for the keys. The reason for this is to add a bit of type safety—in the old regime, it was possible to accidentally pass a String
constant by mistake that was meant to be used with some other API, but now in Swift 4, this will result in a compilation error.
Change your method signature to:
open class func drawText(context: CGContext, text: String, point: CGPoint,
align: NSTextAlignment, attributes: [NSAttributedString.Key : Any]?)
EDIT: Updated for Swift 4.2! NSAttributedStringKey
has been renamed to NSAttributedString.Key
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…