webentwicklung-frage-antwort-db.com.de

#warning: C-style for statement ist veraltet und wird in einer zukünftigen Version von Swift entfernt

Ich habe gerade einen neuen Xcode (7.3) mit Swift 2.2 heruntergeladen.

Es hat eine Warnung: 

C-style for statement ist veraltet und wird in zukünftigen Versionen von Swift entfernt. 

Wie kann ich diese Warnung beheben?

27
sony

for init; comparison; increment {} und ++ und -- einfach entfernen. und nutzen Sie die hübsche For-in-Schleife von Swift

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

Für Dekrementindex

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

Oder Sie können reverse() like verwenden 

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

für Float-Typ (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: 

From Swift3.0, Die stride(to:by:)-Methode von Strideable wurde durch eine freie Funktion ersetzt, stride(from:to:by:)

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

Für den Dekrementierungsindex in Swift 3.0 können Sie reversed() verwenden. 

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

 enter image description here


Anders als for each und stride() können Sie While Loops verwenden. 

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

Repeat-While Loop:

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

check out Kontrollflüsse in Der Swift-Programmiersprachenführer

76
EI Captain v2.0

Für diese Art "for" -Schleife:

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

Du kannst schreiben:

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

Ich habe den gleichen Fehler mit diesem Code erhalten:

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

Wenn Sie versuchen, das Problem mit Xcode zu beheben, haben Sie kein Glück ... Sie müssen also den neuen Swift-Stil (für In-Loop) verwenden:

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

Blockquote

Verwenden Sie stattdessen diese

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