Hakan Kurhan
Hakan Kurhan

Reputation: 29

Swift Does not see data

I am trying to parse the data and display on the screen but i am getting " Value of type 'EmployeeData' has no member 'employee_name' " What i am missing ? I created my struct, parsed data and tried to divide into two parts. first part will be related with listing, second part is all data.

struct EmployeeData: Codable {
    var data: Employee
    var status: String
}

struct Employee: Codable {

    var employee_name: String
    var employee_salary: String
    var employee_age: String
}

class WebServices {

    func getData(completion: @escaping (EmployeeData?) -> ()){


        guard let url = URL(string:"http://dummy.restapiexample.com/api/v1/employees")
        else { fatalError("There is error!") }

        URLSession.shared.dataTask(with: url) { (data, response,error) in

            guard let data = data, error == nil else {

                DispatchQueue.main.async{
                completion(nil)
                }
                return
            }

            let empleyees = try? JSONDecoder().decode(EmployeeData.self, from: data)
            DispatchQueue.main.async {
                completion(empleyees)
            }


        }.resume()


    }
}

class MVDesingnListView: ObservableObject {

}


struct MVDesignCellView {

    let employeeDatas: EmployeeData

    init(employeeDatas: EmployeeData) {
        self.employeeDatas = employeeDatas
    }

    var employee_name: String {
        self.employeeDatas.employee_name            
    }
}

Upvotes: 0

Views: 70

Answers (1)

Andreas Oetjen
Andreas Oetjen

Reputation: 10199

The compiler is all right. Your struct EmployeeData has no member employee_name.

You need to go to the employee first, to get her name:

var employee_name: String {
    self.employeeDatas.data.employee_name            
}

should do the job.

Upvotes: 2

Related Questions