Xcode 6.1 Swift中的属性字典

Gri*_*mxn 8 xcode swift

从Xcode 6 Beta 7升级到Xcode 6.1 Beta 2后,以下内容不再有效:

let font = UIFont(name: "Arial", size: 16)
let colour = UIColor.redColor()
let attributes = [NSFontAttributeName: font, NSForegroundColorAttributeName: colour]
Run Code Online (Sandbox Code Playgroud)

我试过特别声明字典为

let attributes: [NSString : AnyObject] = [NSFontAttributeName: font, NSForegroundColorAttributeName: colour]
Run Code Online (Sandbox Code Playgroud)

但我收到错误"无法转换...'字典'到'NSString!'".声明密钥NSString!而不是NSString抱怨NSString!不可缓存.有线索吗?

Gri*_*mxn 18

排序.像往常一样,实际的错误是红鲱鱼.UIFont(name: , size:)现在有一个init?初始化器,因此是可选的.现在正确使用:

let font = UIFont(name: "Arial", size: 16)! // Unwrapped
let colour = UIColor.redColor()
let attributes: [NSString : AnyObject] = [NSFontAttributeName: font, NSForegroundColorAttributeName: colour]
Run Code Online (Sandbox Code Playgroud)

或者,更准确地说:

if let font = UIFont(name: "Arial", size: 16) {
    let colour = UIColor.redColor()
    let attributes: [NSString : AnyObject] = [NSFontAttributeName: font, NSForegroundColorAttributeName: colour]
    // ...
}
Run Code Online (Sandbox Code Playgroud)