つかぱい.com

どうせなら好きなことを書いていたい

Arc4random_uniformで乱数を発生させ、おみくじの結果を表示する。

初歩的な実験としておみくじの実験

問題だったところは、

result = Int(arc4random_uniform(5))の部分で Cannot convert value of type 'UInt32' to expected argument type 'String'となったこと。

やりたかった流れとしては

1インターフェース上のボタンを押す 2swich内の整数を乱数で出して条件分岐させる 3インターフェース上のanswerLabelで結果を表示させる。

Swift

class ViewController: UIViewController {

    @IBOutlet weak var answerLabel: UILabel!
    @IBOutlet weak var errorLabel: UILabel!
    var anwser: String!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

// おみくじを引く関数

    @IBAction func buttomPressed(sender: UIButton) {

    var result: Int
    result = Int(arc4random_uniform(5)){
    errorLabel.text = ""

switch result {
case 0:
    answer = "大吉"
    answerLabel.text = answer
case 1:
    answer = "吉"
    answerLabel.text = answer
case 2:
    answer = "中吉"
    answerLabel.text = answer
case 3:
    answer = "小吉"
    answerLabel.text = answer
case 4:
    answer = "凶"
    answerLabel.text = answer
default:
    println("エラー")
       }
      }
     }
    }

解決手段としては

1、 result = Int(arc4random_uniform(5)){の「{}」の部分を削除 2、var answerを削除してanswerLabelに直接”運勢”を書き込むことで解決

そもそもanswerの変数なんていらなかった。

ついでに各switchに入っているanswerも削除すると問題解決

なんとかなりました。