当前位置: 首页 > 面试题库 >

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

邓夕
2023-03-14
问题内容

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

问题答案:

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
}


 类似资料:
  • 我有一些几年前编写的旧软件,但现在不支持,所以我不能简单地升级来解决这个问题。 意义;我不能去供应商那里获得软件更新来解决它。 deprecated:mysql_connect():mysql扩展不推荐使用,以后将删除:在/home/kribs/public_html/stconfig.php第117行中使用mysqli或PDO 警告:不能修改标题信息--标题已经由第248行/home/kribs

  • 问题内容: 有人知道如何避免以下代码的下一个警告吗? 问题答案: 如消息所示,请改用命名参数。

  • 请注意,当我使用[src]=“image”绑定到模板时,例如: 并且使用传递,一切似乎都很好...有人能看出我做错了什么吗?

  • 方法调用“Get AbsolutePath”可能产生“NullPointerException” 并且忽略文件

  • 我克隆了react应用程序的回购协议。 运行 收到3次严重程度较高的警告。 在尝试修复(npm audit fix--force)时,我总共得到31个漏洞 以下是警告: 审计结果表明:

  • 我有一个针对Android9的应用程序,我注意到在Google Play发布前的报告中有一个新的部分叫做Android兼容性。这个新的部分列出了与使用不受支持的API有关的警告或错误。以下是问题之一,并作为greylisted API列出。有人能解释一下在这种情况下哪个是不受支持的API吗?使用似乎来自Android支持库,而不是我的代码。