我在nestjs上开发了一个服务器,通过它我创建了对象作为模型:id和title:我想在swiftUI中的ios应用程序上检索数据,但是当我启动它时,列表中什么都没有显示。并且错误显示在控制台中。
如果我使用url:“ https://jsonplaceholder.typicode.com/todos”,则一切正常。我不知道问题是什么。您有解决方案吗?
这是我的代码:
import SwiftUI
struct Task: Codable, Identifiable {
public var id: Int
public var title: String
}
class LoadData: ObservableObject {
@Published var tasks = [Task]()
init() {
let url = URL(string: "http://localhost:3000/tasks")!
URLSession.shared.dataTask(with: url) {(data, response, error) in
do {
if let taskData = data {
let decodedData = try JSONDecoder().decode([Task].self, from: taskData)
DispatchQueue.main.async {
self.tasks = decodedData
}
} else {print("No data")}
} catch {print("Error")}
}.resume()
}
}
struct ContentView: View {
@ObservedObject var load = LoadData()
var body: some View {
VStack {
List(load.tasks) { index in
VStack(alignment: .leading) {
Text(index.title)
}
}
}
}
}
通常,Apple希望您使用https。因此,请尝试为https设置nestjs服务器和ios客户端。另外,您可以在info.plist中提供一个例外来解决此问题,即使用http。
这里是放入info.plist的一个示例,请相应调整: