swift - 修复 Swift 3 中的警告 "C-style for Statement is deprecated"

标签 swift for-loop swift2 compiler-warnings

我已将 Xcode 更新到 7.3,现在我对用于创建随机字符串的函数发出警告。

我试图用 for 更改 for (i in 0 ..< len){...} 语句,但是警告变成了错误。

如何删除警告?

static func randomStringWithLength (len : Int) -> NSString {
  let letters : NSString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  let randomString : NSMutableString = NSMutableString(capacity: len)

  for (var i=0; i < len; i += 1){ // warning
    let length = UInt32 (letters.length)
    let rand = arc4random_uniform(length)
    randomString.appendFormat("%C", letters.characterAtIndex(Int(rand)))
  }
  return randomString
}

最佳答案

C 风格的 for 循环在 Swift 3 中已被弃用。你可以继续使用它一段时间,但它们肯定会在未来消失。

您可以将循环重写为 Swift 的风格:

for i in 0..<len {
    let length = UInt32 (letters.length)
    let rand = arc4random_uniform(length)
    randomString.appendFormat("%C", letters.characterAtIndex(Int(rand)))
}

因为你在循环体中根本不使用i,你可以将它替换为:

for _ in 0..<len {
    // do stuffs
}

关于swift - 修复 Swift 3 中的警告 "C-style for Statement is deprecated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36213333/

相关文章:

ios - Swift:在尝试获取 NSDate future 日期时获取 EXC_BAD_INSTRUCTION

swift - 关闭解析推送状态

Windows 批处理文件无法在 for 语法中使用变量

java - 特定数字的嵌套循环

java - 如何在循环中均匀分布整数?

swift - 在 Swift 2 中,禁用 NSMenuItem 的正确方法是什么?

ios - 从 URL 获取响应时警报显示延迟

ios - Objective-C 和 Swift 之间字节数组的类型转换

swift - UITableview 单元格值不会 swift 改变

ios - 使 UIButton 角出现更多 'round'