SwiftKuery,resultSet.forEach()的KituraStencil编译问题
我是swift开发的初学者,无法编译以下代码:SwiftKuery,resultSet.forEach()的KituraStencil编译问题,swift,Swift,我是swift开发的初学者,无法编译以下代码: import Kitura import KituraStencil import SwiftKuery import SwiftKuerySQLite [...] resultSet.forEach() { row, error in guard let row = row else { guard let _ = error else { // Processed all results
import Kitura
import KituraStencil
import SwiftKuery
import SwiftKuerySQLite
[...]
resultSet.forEach() { row, error in
guard let row = row else {
guard let _ = error else {
// Processed all results
try response.render("themes.stencil", with: themes, forKey: "themes")
}
// Handle error
return
}
/* build 'themes' object */
[...]
}
[...]
获取此错误:
错误:上下文闭包类型“([Any?]?,error?,()->Void)->Void”需要3个参数,但闭包体中使用了2个参数
resultSet.forEach(){行,错误在
因此,我尝试了以下方法:
import Kitura
import KituraStencil
import SwiftKuery
import SwiftKuerySQLite
[...]
resultSet.forEach() { row, error, dummy in
guard let row = row else {
guard let _ = error else {
// Processed all results
try response.render("themes.stencil", with: themes, forKey: "themes")
}
// Handle error
return
}
/* build 'themes' object */
[...]
}
[...]
然后我得到这个错误:
错误:上下文闭包类型“([Any?],error?->Void”需要2个参数,但闭包正文中使用了3个参数
resultSet.forEach(){row,error,dummy in
在这两种情况下,如果我将try response.render(“themes.stencil”)替换为:themes,forKey:“themes”)替换为return则没有编译错误
我做错了什么?最终通过这种方式解决了问题(未处理的异常):
最终以这种方式修复了问题(未处理的异常):
[...]
resultSet.forEach() { row, error, dummy in
guard let row = row else {
guard let _ = error else {
// Processed all results
do {
try response.render("themes.stencil", with: themes, forKey: "themes")
}
catch { }
}
// Handle error
return
}
/* build 'themes' object */
[...]
}
[...]