質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • Swift

    6508questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3762questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Xcode 7

    612questions

    Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

為替の変換結果が表示されません。

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 97

MasakiYin

score 1

`````````import UIKit

class ViewController: UIViewController,UITextFieldDelegate {
    @IBOutlet weak var inputText: UITextField?
    @IBOutlet weak var outputText: UILabel!
    @IBOutlet weak var outputcurrency: UILabel!

    var money = Money()
    var currency: String = "YEN"

    @IBAction func doConversionYEN(_ sender: UIButton) {
        currency = "YEN"
        outputcurrency.text = currency
    }
    @IBAction func doConversionEUR(_ sender: UIButton) {
        currency = "EUR"
        outputcurrency.text = currency
    }

    func fun(textField: UITextField)->Bool{
        var convertAmount:Double = 0

        textField.resignFirstResponder()

        if let amount = Int((textField.text)!){
            money.setAmount(inputMoney: Double(amount))
            money.setCurrency(cur: "USD")
            convertAmount = money.convert(cur: currency).getAmount()
            if currency == "YEN"{
                outputText.text = String(format: "%.0f",convertAmount)
            }
            else if currency == "EUR"{
                outputText.text = String(format: "%.2f",convertAmount)
            }
            outputcurrency.text = currency
        }
        else{
            outputText.text = "エラーでっせ"
        }
        return true
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        inputText?.delegate = self
        money.setCurrency(cur: "USD")
        currency = "YEN"
        outputcurrency.text = currency
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}
    class Money{
        var amount: Double = 0
        var currency: String = ""
        var rates:Dictionary<String,Double> = ["USDYEN":120,"USDEUR":1.2]

        func setAmount(inputMoney: Double){
            amount = inputMoney
        }

        func setCurrency(cur: String){
            currency = cur
        }

        func convert(cur: String)->Money{
            let money = Money()
            money.setAmount(inputMoney: amount*rates[currency+cur]!)
            money.setCurrency(cur: currency)
            return money
        }

        func getAmount()->Double{
            return amount
        }
    }

コード

![イメージ説明

 前提・実現したいこと

画像のoutputの欄に為替変換した金額を出力させたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • newmt

    2018/04/30 15:04

    func fun(textField: UITextField)はどこかで呼んでいますでしょうか?上記のコードですとどこからも呼ばれていないように見えます。

    キャンセル

  • MasakiYin

    2018/04/30 16:13

    呼んでいません。コードは上記の通りです。どうやって呼べば良いでしょうか?

    キャンセル

回答 1

checkベストアンサー

0

何がどうなった時にメソッドを呼び出したいかによりますが、
テキストフィールドが入力された場合などでしたら
https://logist3.com/swift-uitextfield-delegate/
などが参考になると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/03 13:40

    ご回答ありがとうございます。URL先の記事を拝見したのですが、自分が何をすれば良いか、いまいちわかりませんでした。
    金額が入力されてYENかEURのボタンが押された時に、funメソッドが呼び出されて押された通貨に為替変換させたいのですが、上記のコードでは何が足りていないのでしょうか。
    私が知識不足であるためにお手数かけさせて申し訳ありません。

    キャンセル

  • 2018/05/03 13:55

    >ENかEURのボタンが押された時に、funメソッドが呼び出されて押された通貨に為替変換させたい

    それでしたら
    まずはfunc doConversionEURとfunc doConversionYENでfunメソッドを呼んでみてはいかがでしょうか?

    キャンセル

  • 2018/05/03 19:40

    ご指摘の通りにしたところ、うまく行きました。
    ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    Swift2

    Textfieldに入力された文字をTextfieldをタッチした時に消したいです 1回目Textfieldに入力する 2回目Textfieldに1回目に入力した物が残って

  • 解決済

    Swift 画面遷移時に値を引き渡すことができない

    質問です。 ただいま、xcodeで出会い系アプリをiPhone専用に開発しております。 xcodeのテンプレートでtabbed applicationを選択して ただいま

  • 受付中

    String型をDouble型に変換したい

      前提・実現したいこと UITextfieldに記入された数字をDouble型に変換したいのですがうまくいきません。 助けてください。

  • 解決済

    値を他のViewControllerで使えるようにするには

    textFieldの値をlabelに表示させる方法を勉強していて、応用編としてtextFieldの値を別の画面のlabelに表示さたいのですが この時、viewController

  • 受付中

    Realmのlabel表記方法について

    textfield に入力したものをRealmを利用して遷移先でLabel に表示させたいのですが、方法がわかりません。 下記のようにそのページ内でボタンを押すとLabelに表示す

  • 解決済

    PickerViewの不要なボタンを消したい

    PickerViewを出すと左の上の方に、こんなボタンが表示されますが、いらないので消したいんです。 どこをどうすればいいのでしょう?

  • 解決済

    iOSアプリの特定Viewでキーボードを常時表示させたい。

    添付画像のTwitterのツイート投稿画面のように、あるViewが表示された時に自動的にキーボードを表示し、そのままこのView表示中は常時表示させるようにしたいのです。 どのよう

  • 解決済

    pickerViewの外に値を移す

    タイトルの通りの質問です。 下記のコードで数値2つを入力、それを演算子1つ選んで計算するツールを作っています。 import UIKit class ViewControll

同じタグがついた質問を見る

  • Swift

    6508questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3762questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Xcode 7

    612questions

    Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。