Я просто загружаю новый Xcode (7.3) с быстрым 2.2.
В нем есть предупреждение:
Оператор в стиле C устарел и будет удален в будущей версии Swift.
Как я могу исправить это предупреждение?
Я просто загружаю новый Xcode (7.3) с быстрым 2.2.
В нем есть предупреждение:
Оператор в стиле C устарел и будет удален в будущей версии Swift.
Как я могу исправить это предупреждение?
Удаление for init; comparison; increment {}
, а также удаление ++
и --
легко. и используйте симпатичный цикл for-in 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)")
}
Свифт 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.0
метод stride(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 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
i in <max(0,foo.count-1)
- person EI Captain v2.0; 23.03.2016
max(...)
, .forEach{ ... }
, from.stride(to:by)
и т. д. Рад помочь.
- person dfrib; 23.03.2016
Для этого вида цикла «для»:
for var i = 10; i >= 0; --i {
print(i)
}
Ты можешь написать:
for i in (0...10).reverse() {
print(i)
}
Я получил ту же ошибку с этим кодом:
for (var i = 1; i != video.getAll().count; i++) {
print("show number \(i)")
}
Когда вы пытаетесь исправить это с помощью Xcode, вам не повезло... Поэтому вам нужно использовать новый стиль Swift (для цикла):
for i in 1...video.getAll().count {
print("show number \(i)")
}
Цитата
Используйте это вместо
if(myarr.count)
{
for i in 1...myarr?.count {
print(" number is \(i)")
}
}
for i in myarr.count.stride(to: 0, by: -1) { ... }
- person dfrib; 23.03.2016
for i in 0...10 { }
- person Fonix   schedule 23.03.2016