case文のテキスト表示


初心者です。swiftで簡単なおみくじアプリを作っています。  
ViewController.swiftに

[code]

    import UIKit
    
    class ViewController: UIViewController {
        @IBOutlet var uranau: UIButton!
        @IBAction func Uranau(sender: UIButton) {
        }
    
        @IBAction func uranau(sender: UIButton) {
            var kekka = " "
            var kazu = arc4random_uniform(5)
            switch kazu {
            case 4:
                kekka = "大吉"
            case 3:
                kekka = "中吉"
            case 2:
                kekka = "小吉"
            case 1:
                kekka = "吉"
            case 0:
                kekka = "凶"
            default:
                kekka = "エラー"
    
            }
            kekka.text=kekka
        }
    
[/code]

と記載したら kekka.text=kekkaのところでエラーが出ました。  
print()を使ったらよかったですか？  
何が間違っているのかわかりません。




他の方が`print`を使って(デバッグ用コンソールに)表示する方法を回答されていますので、ここでは画面に結果を出したい場合のお話を。

[code]

    {あるオブジェクト}.text = {文字列}
    
[/code]

と言う形の式で結果を表示したければ、`{あるオブジェクト}`は以下のようになっていないといけません。

(A) `text`というプロパティを持つこと  
(B) そのプロパティの内容を表示できるオブジェクトであること  
(C) そのオブジェクトの表示内容が画面に反映される状態になっていること

あなたのコードの中で`{あるオブジェクト}`の位置に書いてある`kekka`には`String`型のインスタンスが入っていますが、それは上の(A)〜(C)のどれも満たしません。結果を画面上に表示したければ、表示を司るオブジェクトを追加し、そのオブジェクトに対して`{あるオブジェクト}.text
= {文字列}`を実行しないといけません。

(1)
InterfaceBuilder(Xcodeのstoryboardエディター)上で、この`ViewController`用の画面に結果表示用の`UILabel`を追加する。

(2) `ViewController`に新しい`@IBOutlet`を追加する。

[code]

    @IBOutlet var kekkaLabel: UILabel!
    
[/code]

(3) InterfaceBuilderでこの`@IBOutlet`と(1)の`UILabel`を結びつける。

(4) 結果表示用の行が上の`kekkaLabel`を操作するように書き直す。

[code]

        kekkaLabel.text = kekka
    
[/code]

* * *

このあたりで「何が間違っているのかわかりません」と言う状態なのでしたら、再度しっかりとプログラミングの基本から復習することをお勧めします。

