sizeWithAttributes 结果是"NSString is not identical to NSObject"



我的代码在iOS 8.0上运行良好,由于我更新到了Xcode 6.1/SDK 8.1,我无法获得编译的swift代码

我正试图从类似的NSString中获取CGSize

let part1="my text"
let font = UIFont(name: "Arial", size: 30)
var dict = [NSFontAttributeName:font]
let size: CGSize = part1.sizeWithAttributes(dict)

在最后一行,我得到了错误"NSString与NSObject不相同"

有人能帮忙吗?

事实上,我找到了解决方案,下面是要添加的行,以使其发挥作用。

let part1="my text"
let font = UIFont(name: "Arial", size: 30)
if let fontNotNil=font {
    var dict = [NSFontAttributeName:fontNotNil]
    let size: CGSize = part1.sizeWithAttributes(dict)
}

尝试以下操作:

let part1: NSString = "my text"

选项都需要正确的展开"

let part1: NSString! = "my text"  // For the test since we do not know the type of part1
if let font = UIFont(name: "Arial", size: 30) {
    let dict = [NSFontAttributeName:font] as NSDictionary
    let size: CGSize = part1.sizeWithAttributes(dict)
    println("size: (size)")
}

输出:

尺寸:(96.6796875,33.515625)

最新更新