gpt4 book ai didi

swift - Swift beta7 中的 NSString.sizeWithAttributes()

转载 作者:搜寻专家 更新时间:2023-10-31 22:09:00 28 4
gpt4 key购买 nike

下面这段代码在 Xcode 6 beta 5 中运行良好:

func fitText(){
let size = (self.text as NSString).sizeWithAttributes([NSFontAttributeName:self.font]) //Errors here
self.frame.size = size
}

现在它在第二行给出了以下错误:

'UIFont' is not a subtype of 'NSDictionary'

Cannot convert the expression's type '$T6' to type 'UIFont'

当我把它分成

let dict = [NSFontAttributeName:self.font]
let size = (self.text as NSString).sizeWithAttributes(dict) //Even stranger errors go here

xcode 说:

'UIFont' is not a subtype of 'NSDictionary'

Cannot convert the expression's type '[NSString : UIFont]' to type 'CGSize'

在 beta 7 或 6 中,swift 有什么变化可以破坏代码?

最佳答案

通过将隐式展开的可选项转换为显式可选项,已在 beta 7 中修复了几个具有可选和可选属性的方法签名。

在您的情况下,我假设 text 属性被声明为 String!(隐式展开),而现在它是一个 String? 相反。因此,您必须隐式地打开它:

let size = self.text!.sizeWithAttributes(dict)

或更好地使用可选绑定(bind):

    if let text = self.text {
let size = text.sizeWithAttributes(dict)
}

关于swift - Swift beta7 中的 NSString.sizeWithAttributes(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25687269/

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