web-dev-qa-db-ja.com

Swiftの配列の長さに基づくforループ

配列の長さを取得し、その長さを使用してループを実行する回数を設定しようとしています。これは私のコードです:

  if notes.count != names.count {
        notes.removeAllObjects()
        var nameArrayLength = names.count
        for index in nameArrayLength {
            notes.insertObject("", atIndex: (index-1))
        }
    }

現時点では、エラーが表示されます。

Int does not have a member named 'Generator'

かなり単純な問題のように思えますが、私はまだ解決策を見つけていません。何か案は?

14
user3746428

範囲を指定する必要があります。 nameArrayLengthを含める場合:

for index in 1...nameArrayLength {
}

nameArrayLengthの前に1を停止する場合:

for index in 1..<nameArrayLength {
}
27
vacawama
for i in 0..< names.count {
    //YOUR LOGIC....
}
5
Ketan Patel

Swift 3およびSwift 4では次のことができます。

for (index, name) in names.enumerated()
{
     ...
}
2
meaning-matters

配列のindicesをループできます

for index in names.indices {
    ...
}

空の文字列で配列を埋めたいだけなら、あなたはできる

notes = Array(repeating: "", count: names.count)
0
Paul.s