2015-10-01 12 views
5

私は非常に長い間、iOSやSwiftを勉強していません。最新のXcodeアップデートでは、コンピュータ上で作成した多くのアプリケーションが、古い構文を使用しているように見えます。"オプションタイプの値 'String?'アンラップされていない;あなたは '!'または '?' ? "

Xcodeは新しい構文に変換してくれますが、何も解決しないことが多く、新しい問題があります。構文が変換された後に最初に作成したアプリケーションのコードです。

オプションの値 'String?'の値が表示されます。アンラップされていない。 '!'を使用することを意味しましたか?または '?' ?

私はこれが本当にシンプルでなければならないことは知っていますが、それを修正する方法はわかりません。ここに私のコードです:

@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" 
    } 
} 

答えて

10

テキストラベルの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" 
} 
1

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

ありがとうございました。また、何かをするさまざまな方法を知ることも有益です。

関連する問題