【发布时间】:2020-12-19 00:57:25
【问题描述】:
我正在尝试使用 SwiftUI 从视图中调用一个函数。此视图从调用它的视图接收字符串参数。
struct BookList: View {
var name: String
var body: some View {
let data: () = getData(from: self.name)
...
}
}
get data 函数正在消费一个 rest 服务并获取一些数据。
func getData(from url: String){
let task = URLSession.shared.dataTask(with: URL(string: url)!, completionHandler: { data, response, error in
guard let data = data, error == nil else {
print("Something went wrong")
return
}
//Have data
var result: Response?
do {
result = try JSONDecoder().decode(Response.self, from: data)
} catch {
print("failed to convert \(error.localizedDescription)")
}
guard let json = result else{
return
}
print("Page: \(json.page)")
print("Books: \(json.books.first)")
})
task.resume()
}
struct Response: Codable {
var error: String
var total: String
var page: String
var books: [MyBook]
}
问题是我不知道在视图启动时如何调用这个函数。在这个示例中,我收到了错误:
"函数声明了一个不透明的返回类型,但没有返回语句 在它的主体中推断一个基础类型"
我该如何解决?
【问题讨论】: