Swift 1.2の書籍[1]の指示に従っています.1つのテキストフィールド、1つのボタン、および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 App Development Essentials - Second Edition:XcodeとSwift 1.2を使用してiOS 8アプリケーションを開発する方法を学びます。 ISBN 978-1511713337。
です。 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