前提・実現したいこと
swift初心者です。youtubeを見ながらNewsAppを作っていたのですが、エラーが出て進めません。
発生している問題・エラーメッセージ
Cannot find 'getData' in scope The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions Cannot find 'ContentView' in scope Contextual closure type '(Data?, URLResponse?, Error?) -> Void' expects 3 arguments, but 2 were used in closure body Consecutive statements on a line must be separated by ';'
該当のソースコード
import SwiftUI import SwiftyJSON import SDWebImageSwiftUI struct CotentView: View { @ObservedObject var list = getData() var body: some View { NavigationView{ List(list.datas){i in HStack(spacing: 15){ VStack(alignment: .leading, spacing: 10){ Text(i.title).fontWeight(.heavy) Text(i.desc) } WebImage(url: URL(string: i.image)!, options: .highPriority, context: nil) }.padding(.vertical, 15) }.navigationBarTitle("Headlines") } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } struct detaType : Identifiable { var id : String var title : String var desc : String var url : String var image : String } class getDate : ObservableObject{ @Published var detas = [detaType]() init() { let source = "https://newsapi.org/v2/top-headlines?country=us&category=business&apiKey" let url = URL(string: source)! let session = URLSession(configuration: .default) session.dataTask(with: url) { (data, , err) in if err != nil{ print((err?.localizedDescription)!) return } let json = try! JSON(data: data!) for i in json["articles"]{ let title = i.1["title"].stringValue let description = i.1["description"].stringValue let url = i.1["url"].stringValue let image = i.1["urlToImage"].stringValue let id = i.1["publishedAT"].stringValue DispatchQueue.main.async { self.datas.append(dataType(id: id, title: title, desc: description, url:url, image: image )) } self.datas.append(dataType(id: id, title: title, desc: description, url:url, image: image )) }.resume() }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
そのソースコードだけでは情報が足りないので、youtube 動画の URL を教えてください。
また、エラーメッセージやソースコードは ``` と ``` の間に貼ってください。
ソースコードとか貼る時の参考質問貼っときます。
https://teratail.com/questions/238564
すみません、programingも初心者でteratailも初めて使ったもので、、
youtubeのurlはhttps://youtu.be/0rKgs9D9qSg
です。
5分30秒くらいに映るNavigationVIew以下のところでエラーが出てしまいます。
回答いただけると幸いです。
動画を見ましたが、やはり質問文に貼られた以外の部分でエラーが発生しているように見えます。
ソースコード全体を貼ってもらえませんか? (API キーは隠した方がいいかも…。)
ソースコード全体を載せました。
回答ご協力お願いいたします。
回答3件
あなたの回答
tips
プレビュー