ios - swift : Cast wrapped value

标签 ios swift casting

<分区>

我正在尝试将包装值从字符串转换为 float ,但我无法做到。我想我缺少关于 swift 中整个包装/展开 (?/!) 的一些知识。

我正在尝试从标签中获取文本。

这是我的标签:

@IBOutlet weak var maxDistance: UILabel!

这是我尝试过的:

var max = Float(maxDistance.text)!
--> Could not find an overload for 'init' that accepts the supplied arguments

var max = Float(maxDistance.text!)
--> Cannot invoke 'init' with an argument of type '@lvalue String'

var max = Float(maxDistance!.text)
--> Cannot invoke 'init' with an argument of type '@lvalue String?'

var max = Float(maxDistance?.text)
--> Cannot invoke 'init' with an argument of type '$T4??'

最佳答案

这与“包装值(value)”无关。你所说的根本不是 swift 。 没有将字符串转换为 float 的 Swift 原生规定。您可以将其转换为 Int(使用 toInt)。否则,您将不得不陷入 Cocoa 并调用 floatValue。所以:

 let s = "1.3"
 let f = (s as NSString).floatValue

但是,真正的答案是您不应该这样做。如果此文本值下有一个 float ,则您应该将该 float 保留为数据模型的一部分。从 View 文本表示中提取数字完全违反了 MVC(模型- View - Controller )。

关于ios - swift : Cast wrapped value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28201616/

相关文章:

ios - EXC_BAD_ACCESS 与 ARC 使用 KZColorPicker

cocoa-touch - 双核 iPad (A5) = Grand Central Dispatch?

ios - 为什么在 Firebase removeValue() 中删除数据不起作用?

ios - 如何使用 swift (iOS) 从特定的 gamecenter 排行榜中获取前 10 名的分数

Typescript - keyof 对象为 'OR strings option'

mysql - 在 MySQL 中转换为十进制

ios - 使图像适合圆形 ImageView

swift - 完成处理程序中是否可以有一个函数?

casting - 参数类型问题

android - 图片不显示在网站上?但是在手持设备上做