我更新了Xcode到7.3,现在我对我用来创建随机字符串的函数有一个警告.

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

如何删除警告?

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-style for循环在Swift 3中已被弃用.你可以继续使用它一段时间,但它们肯定会在future 消失.

你可以按照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相关问答推荐

对多个项目的数组进行排序

如何防止自动状态恢复,如果应用程序被启动打开特定的文档?

NSWindow中以编程方式创建的TextField快捷方式与SwiftUI

如何在visionOS中定制悬停效果区域

为什么要在SWIFT RandomAccessCollection协议中重新定义元素类型?

如何在枚举有关联数据时使用combined if with case

KMM-Swift铸造密封类

DispatchQueue.main.asyncAfter 等同于 Swift 中的 struct 化并发?

RealityKit - 从中心zoom 模型

带有可选字符串作为键路径的 SwiftUI iOS16 表

使用 Async-Await 和 Vapor-Fluent 创建 CRUD 函数 - Swift 5.6

Swift Swiftui - 将 colored颜色 保存到 UserDefaults 并从 @AppStorage 使用它

SwiftUI:调用以编程方式创建的视图的函数

.onTapGesture 不适用于 Stepper,仅适用于其文本

判断 Swift 程序是否正在输出到终端

如何删除桥头而不出错?

Swiftwhere数组扩展

如何在 iOS Swift 中进行多线程、并发或并行?

如何使用 swift 将 Images.xcassets 中的图像加载到 UIImage 中

WKWebView 确实从本地文档文件夹加载资源