要完成的任务:使用github使您的Github数据出现在ContentView屏幕上。
struct TaskEntry: Codable {
let id: Int
let title: String
} @State var results = [TaskEntry]()
func loadData() {
guard let url = URL(string: "https://jsonplaceholder.typicode.com/todos") else {
print("Invalid URL")
return
}
let request = URLRequest(url: url)
URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
if let response = try? JSONDecoder().decode([TaskEntry].self, from: data) {
DispatchQueue.main.async {
self.results = response
}
return
}
}
}.resume()
}以上解决方案无助于执行此任务。
谢谢大家的关注。帮助那些知道..。
发布于 2022-05-08 04:40:18
尝试这样的方法来显示从github检索到的一些信息。
你需要为你的信息建立一个模型,这里我称之为Repository。然后,您需要使用适当的url从github服务器获取信息,如loadData所示。最后,您需要在视图中显示信息,如ContentView所示。
struct Repository: Decodable, Identifiable {
let id: Int
let name, fullName: String
enum CodingKeys: String, CodingKey {
case id, name
case fullName = "full_name"
}
}
struct ContentView: View {
@State var results = [Repository]()
var body: some View {
List {
ForEach(results) { repo in
Text(repo.name)
}
}
.onAppear {
loadData()
}
}
func loadData() {
guard let url = URL(string: "https://api.github.com/users/workingdog/repos") else { return }
URLSession.shared.dataTask(with: url) {(data, _, _) in
guard let data = data else { return }
do {
self.results = try JSONDecoder().decode([Repository].self, from: data)
} catch {
print("error: \(error)")
}
}.resume()
}
}注意,要检索您的github信息,请用您的github名称替换url中的workingdog。
PS:你读过你先前问题的答案了吗:根据Firestore/SwiftUI中集合中的Ids获取字段数据
这个答案对你不管用吗?
发布于 2022-06-06 04:27:10
https://stackoverflow.com/questions/72157749
复制相似问题