问得好。实际上,并没有 任何纯 Swift API 用于将表示 CGFloat 的字符串转换为 CGFloat。纯 Swift 只允许将字符串表示的数字转换为整数。您必须使用来自其他库的一些其他方法-例如,从 Foundation 的 NSString 或 C (Darwin 的) strtod开始。
在 Swift 2.0中,Double类型有一个可以接受 String的失败初始化器。因此,从 String到 CGFloat最安全的方法是:
let string = "1.23456"
var cgFloat: CGFloat?
if let doubleValue = Double(string) {
cgFloat = CGFloat(doubleValue)
}
// cgFloat will be nil if string cannot be converted