亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

#warning:不贊成使用C語言的for語句,并將在以后的Swift版本中刪除

#warning:不贊成使用C語言的for語句,并將在以后的Swift版本中刪除

慕村9548890 2019-09-26 10:34:25
我只是用swift 2.2下載了一個新的Xcode(7.3)。它有一個警告:不推薦使用C風格的statement,并且會在以后的Swift版本中將其刪除。如何解決此警告?
查看完整描述

3 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

刪除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() { ... }

浮球型 (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,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 eachstride(),則可以使用While Loops

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

Repeat-While Loop:

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

《 Swift編程語言指南》中查看控制流


查看完整回答
反對 回復 2019-09-26
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

對于這種“ for”循環:

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

你可以寫:

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


查看完整回答
反對 回復 2019-09-26
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

我收到與此代碼相同的錯誤:

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


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 651 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號