10

私は iOS や Swift を長い間勉強していません。最新の Xcode アップデートの 1 つにより、コンピューターで作成したアプリの多くが古い構文を使用しているように見えます。

Xcode はそれを新しい構文に変換することを教えてくれますが、多くの場合、それでは何も解決せず、新しい問題が発生します。これは、構文が変換された後に作成した最初のアプリの 1 つのコードです。次のようなエラーが表示されます。

オプションの型「文字列?」の値 開封されていません。「!」を使用するつもりでしたか? また '?' ?

これは非常に単純なはずですが、修正方法がわかりません。これが私のコードです:

@IBAction func findAge(sender: AnyObject) {
    var enteredAge = Int(age.text)
    if enteredAge != nil {
        var catYears = enteredAge! * 7
        resultLabel.text = "Your cat is \(catYears) in cat years"
    } else {
        resultLabel.text = "Please enter a whole number"
    }
}  
4

2 に答える 2

18

テキスト ラベルのtextプロパティはオプションです。使用する前にアンラップする必要があります。

var enteredAge = Int(age.text!)

さらに良い:

if let text = age.text, let enteredAge = Int(text) {
    let catYears = enteredAge * 7
    resultLabel.text = "Your cat is \(catYears) in cat years"
} else {
    resultLabel.text = "Please enter a whole number"
}
于 2015-10-01T16:32:05.783 に答える
0

私はそれを試しました。しかし、それでも同じことを言っていました。私は今それを修正することができました。私がしたことは、シミュレーターが表示されているデバイスを変更することだけでした。まぐれだけで、動作するようになりました。iOS アプリを作成していて、iPad では別の構文が必要だったからかもしれません。

お返事ありがとうございます!何かを行うためのさまざまな方法を知ることも有用な方法です。

于 2015-10-02T15:15:49.353 に答える