Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
594 views
in Technique[技术] by (71.8m points)

swift - For-in loop 'Class' to conform to 'Sequence' simple for loop

I'm trying to loop over some Json Parsed data but get that error. The error references to CalEvents.

let session = URLSession.shared

var request = URLRequest(url: url!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")

let dataTask = session.dataTask(with: request) { (data, response, error) in
            
if error == nil && data != nil {
    //parse JSON

    let decoder = JSONDecoder()

    do {
        let events = try decoder.decode(CalEvents.self, from: data!) //error on this line
                    
        for event in events {
            //save to CoreData
            let newEvent = Event(context: self.context)
            newEvent.id = event.id
            newEvent.init_date = event.init_date
            newEvent.end_date = event.end_date
            newEvent.title = event.title
            newEvent.event_description = event.description
            newEvent.color_code = event.color_code
            newEvent.all_day = event.all_day
        }
    }
    catch {
        print("Error in JSON Parsing: (error)")
    }

    }
}

//make the api call
dataTask.resume()

This is my CalEvents Class

import Foundation

struct CalEvents: Codable {
    var events:[CalEvent]?
    
}

What am I doing wrong?

question from:https://stackoverflow.com/questions/65922479/for-in-loop-class-to-conform-to-sequence-simple-for-loop

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...