一尘不染

在Swift 3中修复警告“不赞成使用C样式的语句”

swift

我已经更新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
}

阅读 219

收藏
2020-07-07

共1个答案

一尘不染

forSwift 3中不推荐使用C风格的循环。您可以继续使用一段时间,但是将来肯定会消失。

您可以将循环重写为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
}
2020-07-07