35

Xcode 7 Beta をダウンロードしたところ、このエラーがenumerateキーワードに表示されました。

for (index, string) in enumerate(mySwiftStringArray)
{

}

誰かがこれを克服するのを手伝ってくれますか?

count()また、の長さをカウントするために機能しなくなったようですString

let stringLength = count(myString)

上記の行で、コンパイラは次のように述べています。

'count' は使用できません: コレクションの 'count' プロパティにアクセスしてください。

Apple は Swift 2.0 のプログラミング ガイドをリリースしましたか?

4

3 に答える 3

105

多くのグローバル関数は、Swift 2 の新機能であるプロトコル拡張メソッドenumerate()に置き換えられたため、次の拡張メソッドになりましたSequenceType

extension SequenceType {
    func enumerate() -> EnumerateSequence<Self>
}

として使用されます

let mySwiftStringArray = [ "foo", "bar" ]
for (index, string) in mySwiftStringArray.enumerate() {
   print(string) 
}

Stringに準拠しなくなったため、プロパティSequenceTypeを使用してcharactersUnicode 文字のコレクションを取得する必要があります。また、グローバル関数count()の代わりのプロトコル拡張メソッドです 。CollectionType

let myString = "foo"
let stringLength = myString.characters.count
print(stringLength)

Swift 3 の更新: enumerate()は に名前が変更されましたenumerated():

let mySwiftStringArray = [ "foo", "bar" ]
for (index, string) in mySwiftStringArray.enumerated() {
    print(string)
}
于 2015-06-09T11:15:34.013 に答える
0

これが古いスレッドであることは知っていますが、Swift 2.0 と Playgrounds をいじっているだけで、同じ問題に遭遇しました。文字列に enumerate() メソッドを使用するソリューションを共有すると思いました。

// This line works in Swift 1.2
// for (idx, character) in enumerate("A random string, it has a comma.")

// Swift 2.x
let count = inputString.characters

for (idx, character) in count.enumerate() where character == "," {

    // Do something with idx
}

お役に立てれば

ありがとうカイ

于 2015-10-06T13:25:32.837 に答える