回答
It was proposed and accepted to remove the ++ and -- operators from the Swift language in an upcoming release,因此您看到的警告是幫助您避免代碼在移除之前存在於這些類型的結構中。 (請參考鏈接更全面的解釋,以及優點和缺點,他們提供。)
請注意,C型環也將在不久的將來棄用根據以下建議:https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md
不知道你需要實現什麼樣的邏輯我不覺得有信心推薦一個解決方案,但是根據上述建議,我建議你可能想要熟悉Swift for-in
和stride
陳述。或者,如另一個人推薦的那樣,使用while
循環也可能是合適的。
什麼問題?整個錯誤消息是
C風格的聲明已被棄用,將在 斯威夫特
將來的版本中刪除你可以像
while true {
// loop body
nimages += 1
}
最後的東西替換此,如果您知道所需的迭代次數,則可以使用for-in循環:
for nimages in 0..<maxImages { /* loop body */ }
對不起,問題是:用什麼取代它? –
我很快就打了[return] :) – nielsbot
我想倒計數,但swift不接受count-1..0中的idx,這在「棄用」版本中很容易支持。你知道一個辦法嗎? –
C Style For loops are deprecated和incrementing decrementing like these i++ , i-- also deprecated
因此不能使用這種類型的循環再
let myArray = ["one","two","three","four","five","six"]
for var i = 0; i < myArray.count; i++ {
print(myArray[i])
}
而是上面的語法使用的,我們可以用這個
let myArray = ["one","two","three","four","five","six"]
for i in 0..<myArray.count {
print(myArray[i])
}
而此
for i in 0...myArray.count-1 {
print(myArray[i])
}
如果你不熟悉範圍運營商和半開區間運營商這是時間 (Document Link)
範圍運營商
封閉的範圍操作符( a ... b)定義從a到b的範圍,幷包括值a和b。 a的值不得大於b。
半開區間算
的半開區間操作者(.. < b)中限定了從一個運行至b的範圍內,但不包括b-。
對於index--
風格
for index in 10.stride(to: 0, by: -1) {
print(index)//This is 10, 9, 8, ... 1 NOT 0
}
爲index++
風格
for index in 0..<10 {
}
- 1. 錯誤():mysql擴展名被棄用,將來會被刪除
- 2. Adwords - ClientLogin身份驗證方法現在已被棄用,將來會被刪除
- 3. 已棄用:ServiceLocatorAwareInterface已棄用,將在3.0版中與ServiceLocatorAwareInitializer一起被刪除
- 4. 棄用:mysql_connect():mysql擴展名被棄用,將來會被刪除:使用mysqli或PDO
- 5. ZF2:ServiceLocatorAwareInterface已棄用,將在3.0版中被刪除
- 6. 訪問React.DOM.input已棄用將在v16.0 +中被刪除?
- 7. 錯誤:mysql擴展已被棄用,並將在未來被刪除:使用庫MySQLi或PDO來代替
- 8. 鉻:調用「警報()」 microtask執行過程中已被廢棄,都將被刪除
- 9. RxJavaPlugins.getInstance已被棄用
- 10. reversibleTransformerWithForwardBlock已被棄用
- 11. getActionView已被棄用?
- 12. SMSManager已被棄用
- 13. org.hibernate.dialect.PostgreSQLDialect已被棄用
- 14. devicesWithMediaType已被棄用
- 15. UILineBreakModeWordWrap已被棄用
- 16. setAllowsImageEditing已被棄用?
- 17. requiredContentSizeIdentifiers已被棄用
- 18. dismissModalViewControllerAnimated已被棄用
- 19. videoMinFrameDuration已被棄用
- 20. FBML已被棄用?
- 21. LiveReload for Sublime Text 3已被刪除
- 22. 已淘汰:mysql_connect():mysql擴展已棄用,將來會被刪除:使用mysqli或PDO代替
- 23. 「+」已被棄用:混合型除已棄用在夫特3.1
- 24. 不推薦使用:mysql_real_escape_string():mysql擴展已被棄用,並會在將來被移除:使用庫MySQLi或PDO
- 25. 刪除If語句後,它已被激發一次
- 26. SurfaceTexture已被放棄
- 27. mysql_connect():mysql擴展名被棄用,將來會被刪除:使用mysqli或PDO代替
- 28. PlacePicker.getPlace()和GooglePlayServicesUtil.getErrorDialog()已被棄用
- 29. Android:Gallery View已被棄用?
- 30. C功能已被棄用
「好」?那個循環在我認識的每種語言中都是錯誤的代碼。它的工作原理,但它不是很好。 – Sulthan
在即將發佈的版本中,建議並接受從Swift語言中刪除++和 - 運算符。有關完整的解釋,您可以參考以下鏈接:https://github.com/apple/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md C樣式循環也將在不久的將來會被棄用:https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md –
@DerekLee你可以回答這個問題,所以我可以接受你的答案嗎? –