首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用"Github“(SwiftUI)显示Github数据

使用"Github“(SwiftUI)显示Github数据
EN

Stack Overflow用户
提问于 2022-05-08 02:58:41
回答 2查看 122关注 0票数 -1

要完成的任务:使用github使您的Github数据出现在ContentView屏幕上。

代码语言:javascript
复制
struct TaskEntry: Codable  {
    let id: Int
    let title: String
}
代码语言:javascript
复制
    @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()
        }

以上解决方案无助于执行此任务。

我不知道如何使用这些文档

谢谢大家的关注。帮助那些知道..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-08 04:40:18

尝试这样的方法来显示从github检索到的一些信息。

你需要为你的信息建立一个模型,这里我称之为Repository。然后,您需要使用适当的url从github服务器获取信息,如loadData所示。最后,您需要在视图中显示信息,如ContentView所示。

代码语言:javascript
复制
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获取字段数据

这个答案对你不管用吗?

票数 0
EN

Stack Overflow用户

发布于 2022-06-06 04:27:10

当然,我尊重给出的答案。这是我的结果(受到答案的启发):

如果您对此结果感兴趣:这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72157749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档