Swift NSFontAttributeString在XCode 6.1之前工作 let timeFont=[NSFontAttributeName:UIFont(名称:“航程”,大小:20.0)] var attrString3=nsattributestring((Time)”,属性:timeFont);//
您的代码无法编译有两个原因:Swift NSFontAttributeString在XCode 6.1之前工作 let timeFont=[NSFontAttributeName:UIFont(名称:“航程”,大小:20.0)] var attrString3=nsattributestring((Time)”,属性:timeFont);//,swift,xcode6.1,Swift,Xcode6.1,您的代码无法编译有两个原因: 现在要使用的NSAttributedString的初始值设定项需要显式标记string参数 您现在使用的UIFont初始值设定项返回一个可选值(即UIFont?),在将其传递到属性字典之前,需要先将其展开 请尝试以下方法: let timeFont = [NSFontAttributeName:UIFont(name: "Voyage", size: 20.0)] var attrString3 = NSAttributedString("(Time)", at
- 现在要使用的
的初始值设定项需要显式标记NSAttributedString
参数string
- 您现在使用的
初始值设定项返回一个可选值(即UIFont
),在将其传递到属性字典之前,需要先将其展开UIFont?
let timeFont = [NSFontAttributeName:UIFont(name: "Voyage", size: 20.0)]
var attrString3 = NSAttributedString("(Time)", attributes : timeFont); // <--- compiler error "Extra argument in call"
注意使用新的聚结操作符
?
。这将打开可选的“航行”字体,但如果“航行”不可用(在游乐场中似乎就是这样),则返回到系统字体。这样,即使无法加载首选字体,也可以获得属性字符串。Xcode 6.1附带了支持可能失败的构造函数的Swift 1.1UIFont
初始化可能失败并返回nil
。创建NSAttributedString
时也使用string:
:
let font = UIFont(name: "Voyage", size: 20.0) ?? UIFont.systemFontOfSize(20.0)
let attrs = [NSFontAttributeName : font]
var attrString3 = NSAttributedString(string: "(Time)", attributes: attrs)
if let font = UIFont(name: "Voyage", size: 20.0) {
let timeFont = [NSFontAttributeName:font]
var attrString3 = NSAttributedString(string: "(Time)", attributes : timeFont)
}