31

swift 2.2 で新しい Xcode (7.3) をダウンロードしました。

警告があります:

C スタイルの for ステートメントは推奨されておらず、Swift の将来のバージョンで削除される予定です。

この警告を修正するにはどうすればよいですか?

4

4 に答える 4

79

取り外しfor init; comparison; increment {}も取り外し++もカンタン--。Swift のかなりの for-in ループを使用します

   // WARNING: C-style for statement is deprecated and will be removed in a future version of Swift
   for var i = 1; i <= 10; i += 1 {
      print("I'm number \(i)")
   }

スウィフト 2.2:

   // new swift style works well
   for i in 1...10 {
      print("I'm number \(i)")
   }  

減分指数の場合

  for index in 10.stride(to: 0, by: -1) {
      print(index)
  }

reverse()または、次のよう に使用できます

  for index in (0 ..< 10).reverse() { ... }

フロートタイプ用 (there is no need to define any types to index)

 for index in 0.stride(to: 0.6, by: 0.1) {
     print(index)  //0.0 ,0.1, 0.2,0.3,0.4,0.5
 }  

スウィフト 3.0:

からSwift3.0stride(to:by:)Strideable のメソッドは無料の関数に置き換えられました。stride(from:to:by:)

for i in stride(from: 0, to: 10, by: 1){
    print(i)
}

のデクリメント インデックスにはSwift 3.0、次を使用できます。reversed()

for i in (0 ..< 5).reversed() {
    print(i) // 4,3,2,1,0
}

ここに画像の説明を入力


それ以外for eachstride()、使用できますWhile Loops

var i = 0
while i < 10 {
    i += 1
    print(i)
}

Repeat-While Loop:

var a = 0
repeat {
   a += 1
   print(a)
} while a < 10

The Swift Programming Language Guideの制御フローをチェックしてください

于 2016-03-23T08:49:35.367 に答える
2

このコードで同じエラーが発生しました:

for (var i = 1; i != video.getAll().count; i++) {
    print("show number \(i)")
}

Xcode で修正しようとすると、うまくいきません...そのため、新しい迅速なスタイル (for in ループ) を使用する必要があります。

for i in 1...video.getAll().count {
    print("show number \(i)")
}
于 2016-03-23T09:11:22.870 に答える