我按照Swift 1.2的一本書[1]上的說明來學習如何使用一個文本字段,一個按鈕和一個結果標籤來製作一個簡單的溫度轉換應用程序。我正在使用Swift 3.你在文本字段中輸入溫度,按下「Convert」按鈕,你應該得到結果,但是我得到「不能轉換類型'String'的值?'在強制中鍵入'NSString'。轉換'String?'類型的值鍵入'NSString'
import UIKit
class ViewController : UIViewController {
@IBOutlet weak var tempText : UITextField!
@IBOutlet weak var resultLabel : UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func convertTemp(_ sender: Any) {
let fahrenheit = (tempText.text as NSString).doubleValue
let celsius = (fahrenheit - 32)/1.8
let resultText = "Celsius \(celsius)"
resultLabel.text = resultText
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
我可以作爲以後像這樣添加一個感嘆號:
let fahrenheit = (tempText.text as! NSString).doubleValue
但我仍然收到了警告:‘串’「從演員到不相關的類型'NSString'總是失敗「。
Swift 3應該怎麼做?
[1] Neil Smyth。 iOS 8應用程序開發要點 - 第二版:學習使用Xcode和Swift 1.2開發iOS 8應用程序。 ISBN 978-1511713337。
繼一書,對雨燕1.2將會給你帶來遠遠更多的問題比它的價值。 Swift 4將在幾周內出現(測試版)。做你自己的忙,並找到爲Swift 3編寫的教程。 – rmaddy
爲什麼任何人在編寫Swift 3時都會嘗試使用Swift 1.2的書?這些是完全不同的語言! – matt
'let fahrenheit = Double(tempText.text)'?看到這裏:https://stackoverflow.com/questions/40372656/convert-optional-string-to-double-in-swift-3 – Larme