在 Swift 中更改类型

Posted

技术标签:

【中文标题】在 Swift 中更改类型【英文标题】:Change Type in Swift 【发布时间】:2020-09-03 14:17:46 【问题描述】:

我是 Swift 的新手(隔离学习),并且正在跟随 YouTube 视频创建一个总价应用程序。我在将字符串更改为双精度类型时遇到了问题,基本上是接受输入并将其转换为双精度类型,以便我可以用它进行数学运算。

这是我的代码:

import UIKit


class ViewController: UIViewController 

    override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    

    @IBOutlet weak var pricetxt: UITextField!
    @IBOutlet weak var taxtxt: UITextField!
    @IBOutlet weak var totalpricelbl: UILabel!

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    

    @IBAction func Calculate(sender: AnyObject) 
        let price = Double(pricetxt.text!)!
        let tax = Double(taxtxt.text!)!

        let totalsalestax = price * tax
        let totalprice = price + totalsalestax
        totalpricelbl.text = "$\(totalprice)"
    



这两行出现错误:

let price = Double(pricetxt.text!)!
let tax = Double(taxtxt.text!)!

说:

“不能使用'@!value String!'类型的参数调用'init'!

在我的 Mac 10.9.5 上运行 XCode 是 6.2 我知道这些都是旧的,但我无法升级我的笔记本电脑。

感谢任何帮助!

【问题讨论】:

您是否已将文本字段和标签正确连接到情节提要中的 IBOutlet? 什么版本的 Swift? @JoakimDanielson 是的!所有字段都正确连接 @elliott-io 我正在使用此链接检查 ***.com/questions/30790188/… 的版本,但是当我在 Xcode 6.2 上运行它时,没有出现“swift language”菜单。我猜是因为它太旧了? 请注意,从那时起 Swift 发生了很大变化。学习 Swift 1.x 可能会浪费时间。 Xcode 6 在当时也确实存在问题。你的机器是什么? 【参考方案1】:

试试这个:

let price = (pricetxt.text! as NSString).doubleValue
let tax = (taxtxt.text! as NSString).doubleValue

【讨论】:

以上是关于在 Swift 中更改类型的主要内容,如果未能解决你的问题,请参考以下文章

使用元类型值构造类类型“ClassName”的对象必须使用“必需”初始化程序 XCode8 Swift 3 更改

如何使用 GRDB Swift 迁移更改列类型?

Swift iOS尝试动态更改UITextAutocapitalization类型

Swift 4 JSON Decodable 解码类型更改的最简单方法

swift学习第一天---常量变量基础数据类型

Swift 3 对 getBytes 方法的更改