gpt4 book ai didi

swift - NSFontAttributedString 在 XCode 6.1 之前工作

转载 作者:可可西里 更新时间:2023-10-31 23:56:37 26 4
gpt4 key购买 nike

let timeFont = [NSFontAttributeName:UIFont(name: "Voyage", size: 20.0)]
var attrString3 = NSAttributedString("(Time)", attributes : timeFont); // <--- compiler error "Extra argument in call"

这段代码在 xcode 6.0 中工作,但现在我已经升级到 xcode 6.1 它不再工作了,我不知道我需要什么才能让它恢复工作。它说有一个额外的参数,但那是不正确的。我相信它与新的可失败初始化器有关,但我尝试过的所有方法都不起作用。

最佳答案

您的代码无法编译的原因有两个:

  • 您现在要使用的 NSAttributedString 的初始化程序需要显式标记 string 参数
  • 您现在使用的 UIFont 初始化程序返回一个可选的(即 UIFont?),在将其传递到属性字典之前需要将其解包。

试试这个:

let font = UIFont(name: "Voyage", size: 20.0) ?? UIFont.systemFontOfSize(20.0)
let attrs = [NSFontAttributeName : font]
var attrString3 = NSAttributedString(string: "(Time)", attributes: attrs)

请注意新的合并运算符 ?? 的使用。这会解开可选的 Voyage 字体,但如果 Voyage 不可用(在 Playground 中似乎就是这种情况),则会回退到系统字体。这样,即使无法加载您喜欢的字体,您也可以获得属性字符串。

关于swift - NSFontAttributedString 在 XCode 6.1 之前工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com