2017-05-19 4 views
-4

私のビューコントローラは、私のXcodeプロジェクト内のすばらしいファイルに接続しています。私は2つのテキストフィールドを持っています(1つはゲームの数を入力し、もう1つはスコアを入力します)。誰かが計算ボタンをタップすると、スコアで得られたポイント数でゲーム数を割り、ラベルにゲーム平均ポイントを表示します。私は以下のView Controllerのスクリーンショットを提供しました。Swiftの2つのテキストフィールドの値を分割する

enter image description here

+2

FWIWこれはAndyの学校プロジェクトです....私は質問を純粋に保つために削除しました...しかし、私は他人が質問の可愛さのために知りたいと思うかもしれないと思った: D – Honey

+0

これが宿題の場合は、まず自分で試行してから、問題があるコードをエラーメッセージとともに投稿してください。あなたはこれを自分で処理して、コードオーサリングサービスとしてStack Overflowを扱わないと、さらに多くを学ぶでしょう。 '1)' UITextFieldと 'UILabel'を' IBOutlet'を使って 'UIViewController'にフックします。 '2' '入力を実数とし、'ゲームを遊ぶ 'は '0'ではないことを検証する' 'guard let'文を使う関数を書く' ')ゲームごとの平均点を計算し、 UILabel' –

+0

@RoboticCat若い初心者であれば、1〜2回無料パスを受けることができます。その後、あなたは正しいと思います...彼は彼のコードを示すべきです。 – Honey

答えて

-1

あなたは、単にあなたのクラスにのViewControllerであなたのテキストフィールドを接続し、このようなポイントを計算することができます。これはclickButton関数の単なる例です。

func clickButton(sender:UIButton){ 
     let point = Int(numberofgames.text)/Int(numberofpoint.text) 
     outputlabel.text = String(point) 

} 
+0

あなたは更新を忘れていますラベル... – Honey

+0

が更新しました – MageNative

1

文字列を変換しようとしているということは、最大の問題ですか?あなたは本当にあなたのすべてのデータを検証する必要があります。私は次のルートに沿って何かを行くだろう。

func clickButton(sender:UIButton){ 
    guard let pointsText = numberOfPoints.text, !pointsText.isEmpty else { 
     // alert that the text field is empty 
     return 
    } 
    guard let gamesText = numberOfGames, !gamesText.isEmpty else { 
     // alert that the text field is empty 
     return 
    } 
    guard let points = Double(pointsText), points >= 0 else { 
     // alert that you can't have negative points or that the entered text did not convert to a number 
     return 
    } 
    guard let games = Double(pointsText), games > 0 else { 
     // alert that you can't have negative or zero games or that the entered text did not convert to a number 
     return 
    } 
    let pointAverage = points/games 
    outputlabel.text = "\(pointAverage)" 
} 

これらの値がnilであり、強制的にアンラップしようとすると、アプリケーションがクラッシュする可能性があるため、常にオプションの値に注意する必要があります。同様に、文字列から数値に変換する場合、「ABC」は数値に変換されず、「123」が変換されるため、オプションとして返されるため、問題にも対応できます。

関連する問題