gpt4 book ai didi

swift - 语法从 Swift 更改为 Swift 2,无法使用字符串和额外的 NSErrorPointer 参数调用枚举

转载 作者:行者123 更新时间:2023-11-30 14:00:11 24 4
gpt4 key购买 nike

我正在使用 Xcode 6 开发 Swift 1.2,但现在我已经使用 Swift 2.1 安装了 Xcode 7。尽管我的代码在 Swift 1.2 上运行良好,但 Swift 2.1 中存在许多错误,并且有许多语法更改。第一个问题是这个方法:

func getSubstringUpToIndex(index: Int, fromString str: String) -> String
{
var substring = ""

for (i, letter) in enumerate(str) {
substring.append(letter)

if i == index - 1 {
break
}
}

return substring
}

此行出现另一个问题,“调用中存在额外参数‘错误’”:

let jsonResult: Dictionary = NSJSONSerialization.JSONObjectWithData(self.mutableData, options: NSJSONReadingOptions.MutableContainers, error: &error) as! Dictionary<String, AnyObject>

最佳答案

这两种情况都是 Swift 1.2 代码,而不是 2.0。

在第一段代码中,枚举方法不再存在,您可以这样更新它:

func getSubstringUpToIndex(index: Int,
fromString str: String) -> String
{
var substring = ""

for (i, letter) in str.characters.enumerate() {

substring.append(letter)

if i == index - 1 {
break
}
}

return substring
}

或者这样,使用substringRithRange:

func getSubstringUpToIndex2(index: Int,
fromString str: String) -> String {
let range = str.startIndex.advancedBy(0)..<str.startIndex.advancedBy(index)
return str.substringWithRange(range)
}

swiftstub 上尝试一下.

您粘贴的第二行不再起作用,因为 swift 2 现在使用 try/do/catch 处理错误,最后一个参数 NSErrorPointer 不再存在,了解有关 swift2 error handling here 的更多信息.

关于swift - 语法从 Swift 更改为 Swift 2,无法使用字符串和额外的 NSErrorPointer 参数调用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33074112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com