[Ios] ユーザー入力を素早くIntsの配列に変換する


Answers

文字列を[Int]拡張子に変換する - Swift Version

私はあなたがString[Int]に変換できる拡張の下に置きます。 長いバージョンです。文字列の各行に何が起こっているかを見ることができます。

extension String {

    func convertToIntArray() -> [Int]? {

        var ints = [Int]()
        for char in self.characters {
            if let charInt = char.convertToInt() {
                ints.append(charInt)
            } else {
                return nil
            }
        }
        return ints
    }
}


extension Character {

    func convertToInt() -> Int? {
        return Int(String(self)) ?? nil
    }
}
Question

私は迅速なプログラミングを学ぶために簡単なiOSゲームを作ろうとしています。 ユーザーは、テキストフィールド(キーボードタイプの数字パッド)で4桁の数字を入力し、プログラムはその4桁の数字をとり、各桁を配列に入れます。 基本的に私は何かが欲しい

userInput = "1234"

になる

inputArray = [1,2,3,4]

私は文字列を文字配列に変換することが非常に簡単であることを知っています

var text : String = "BarFoo"
var arrayText = Array(text)
//returns ["B","a","r","F","o","o"]

私の問題は、私の配列が文字ではなく整数で満たされる必要があることです。 ユーザー入力をIntに変換すると、単一の数値になります。したがって、ユーザーが「1234」を入力すると、配列は[1,234]ではなく[1234]

だから私は文字列としてユーザー入力を扱い、その文字の配列を作成し、その配列の要素をループし、それらをIntsに変換し、それらを2番目の配列に入れようとしました:

var input : String = textField.text
var inputArray = Array(input)
var intsArray = [Int]()

for var i = 0; i < inputArray.count ; i++ {
    intsArray[i] = inputArray[i].toInt()
}

コンパイルされず、エラーが表示されます。 'Character' does not have a member named 'toint'

私は間違って何をしていますか?