2

私はスウィフトにかなり慣れていないので、水域をテストするために何かを構築しようとしています。これは私が持っていた以前の質問に関連しています。UITextField オブジェクトからユーザー入力を取得するコードを作成しています。基本的には、Int を UInt32 に変換する方法を見つけようとしていますが、SO で検索したものは何もありません。

これが私のコードです//これは、ユーザー入力を呼び出す場所です。

var rangeInput: Int? {
    get {
        return Int(rangeInputTextField?.text ?? "") 
    }

//これは、範囲を作成し、その範囲外の乱数を呼び出す関数です

  let viewController =  ViewController()
var x = ViewController().rangeInput
let y = (Int?(x!)) 
var number = arc4random_uniform(Int(y!))//ERROR OCCURS HERE "Cannot convert value of type 'Int' to expected argument type 'UInt32'

//MARK: Class for random number

struct RandomNumber {
    // numberRange to change the value for 1...X(user input)
    //creates the list to be picked from. (pickRandom)
   func numberRange(high:  UInt32) ->Range<UInt32>{

    if let high = UInt32?(0){
        print("Invalid number")
            } else { let high = Int(y!) + 1
        }
        let range = 1...high
       return range

    }
    //pick random number from that list

    let pickRandom = number
}

編集: コメントで回答を使用して UInt を変換しましたが、オプションのラップ解除に問題があります。オプションのラップを強制的に解除すると何か問題がありますか?

4

2 に答える 2

0
let viewController =  ViewController()
var x = ViewController().rangeInput
var number = arc4random_uniform(UInt32(x!)) // <----- UInt32 conversion

ただし、ユーザー入力をチェックすることをお勧めxしますUInt32guardif let

于 2016-03-31T15:58:00.180 に答える