gpt4 book ai didi

ios - 返回两个字符串的 Swift 函数在循环时失败

转载 作者:行者123 更新时间:2023-11-29 02:52:42 26 4
gpt4 key购买 nike

我编写了一个返回两个字符串的函数,当定期调用该函数时它工作正常,但是当我通过循环运行该函数时,我收到此错误:

线程 1:EXC_BAD_ACCESS(代码=2,地址=0xbfffcba0)

override func viewDidLoad()
{
super.viewDidLoad()
test()
}

func test()
{
var funcs = [checkButton]
var a = checkButton(value: 1) // Runs OK
for f in funcs{
var result = f(value: 1) // Fail
}
}

func checkButton(#value: Int) -> (location: String, pattern: String){
return ("abc","cba")
}

更新:

我正在使用 Xcode 6 beta 2,并在 VMware Workstation 上运行 Mavericks。

此外,我刚刚使用该代码创建了新的干净项目,但仍然出现错误。

最佳答案

这段代码对我来说运行良好。您的 EXC_BAD_ACCESS 必须来自代码的其他部分。尝试设置断点并单步执行代码以找到引发错误的行。

来自“The Swift Programming Language”。

“实例方法只能在其所属类型的特定实例上调用。如果没有现有实例,就不能单独调用它。”

checkButton() 是实例方法,不是闭包。它适用于第一种情况,因为在 checkButton() 之前有一个隐式的 self.。在第二种情况下它将不起作用。

如果你想让 checkButton 成为闭包,你可以这样声明它:

let checkButton = { (#value: Int) -> (location: String, pattern: String) in
return ("abc","cba")
}

关于ios - 返回两个字符串的 Swift 函数在循环时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24310666/

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