我已经将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
}
4条答案
按热度按时间ltskdhd11#
Swift 3中已经弃用了C风格的
for
循环。你可以继续使用一段时间,但它们肯定会在未来消失。你可以按照Swift的风格重写循环:
由于在循环体中根本不使用
i
,因此可以将其替换为:y1aodyip2#
这个BLOG救了我的命。
不断增加
递减
非顺序索引
使用where
使用大步走向或穿过
bq3bfh9z3#
在Swift 3中这是个错误
发布了一些常规替换,只需添加
对于Swift 3,需要更改“索引”
t1qtbnec4#
我已经成功地完成了下面的代码,你可以按照如下方式使用for循环--注意for循环是包含性的,所以你可能需要检查len是否真的大于0:
或者,您可以使用以下命令:
顺便说一句,XCode 7.x * 确实 * 帮助你达到这个目标,但是它是一个两步的过程。首先你必须把你的增量运算符从(比如说)i++改为i += 1,然后XCode警告帮助你修改循环。