我试图将 businesses
(一个NSDictionary)传递给一个迭代它的函数,并将一个选定的业务(也是一个NSDictionary)返回给视图控制器 . 我认为我正在我的函数中正确处理商业字典的输入 .
使用下面的代码,我收到一个错误,我在调用中有一个额外的参数 . 我需要在do / try / catch中包含调用吗?我是Swift的新手,对使用完成处理程序和将项目传递给函数的不同方法感到有点困惑 . 关于堆栈溢出的大多数问题我发现与如何使用NSURLSession有关并且没有那么有用 . 如果这更容易,请高兴地指出文档或相关博客文章的方向 . 谢谢 .
ViewConteroller,我调用该函数并传递商业词典:
FindBar.searchForOpenBar(businesses) {(selectedBar) -> Void in
print(selectedBar)
}
来自FindBar,其中逻辑(尚未实现)选择返回由视图控制器使用的条 .
class FindBar {
typealias Completion = (selectedBar:NSDictionary) -> Void
func searchForOpenBar(businesses: NSDictionary, completion: Completion) {
//iterate through the businesses and select the bar
for business in businesses {
//temp. hard-coded selection
foundBar = ["name":"Dive Bar", "address":"123 Main St"]
}
//send selected bar back view controller.
completion(selectedBar: foundBar)
}
1 回答
在
FindBar
类中,将func searchForOpenBar
更改为class func searchForOpenBar