web-dev-qa-db-ja.com

#warning:ステートメントのCスタイルは非推奨であり、Swiftの将来のバージョンで削除されます

Swift 2.2で新しいXcode(7.3)をダウンロードするだけです。

警告があります:

Cスタイルのfor文は非推奨であり、Swiftの将来のバージョンでは削除されます。

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

30
sony

_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)")
   }
_

Swift 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() { ... }
_

float型の場合_(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
 }  
_

Swift 3.0:

_Swift3.0_から、Strideableのstride(to:by:)メソッドがフリー関数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
}
_

enter image description here


_for each_およびstride()以外の場合は、_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
_

制御フローをチェックアウト Swiftプログラミング言語ガイド

77
EI Captain v2.0

このような「for」ループの場合:

for var i = 10; i >= 0; --i {
   print(i)
}

あなたは書ける:

for i in (0...10).reverse() {
    print(i)
}
4
coldfire

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

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

Xcodeで修正しようとすると、運がありません...したがって、新しいSwiftスタイル(for in loop))を使用する必要があります。

for i in 1...video.getAll().count {
    print("show number \(i)")
}
2
SDW

ブロッククォート

代わりにこれを使用してください

if(myarr.count)
{
    for i in 1...myarr?.count {
      print(" number is \(i)")
    }
}
0
Moin Shirazi