Как отобразить данные в виде таблицы в соответствии с API - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть tableView.

class DataModel: Mappable {

    var name: String = ""

    var geoArray = [DataModel]()

    required init?(map: Map) {

    }

    // Mappable
    func mapping(map: Map) {

        name <- map["name"]


        dataFetched : for i in 0...100{

            array <- map["Add\(i)"]


            if  array.count > 0{

                break dataFetched
            }

        }

    }

}

в viewController: -

var ListArray = [DataModel]()

  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return self.ListArray.count

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)


    cell.textLabel?.text = self.ListArray[indexPath.row].name
    return cell
}

мой API имеет следующий формат: -

"Add": [{"name":"Topics","Add1":[{"name":"Subjects","Add2":[{"name":"Biology","Add3":[{and so.......}]}]}]}]

поэтому мне нужен вывод в виде: -

 Topics
 Subjects
 Biology
 ......

таким образом мне нужно отобразить в виде таблицы. Какие изменения нужно сделать. Как получить решение

Я использовал API для передачиданные как: -

    func  getData()  {

    let url = "example.com"
    print(url)

    self.newtworkHelper.makeAPIRequestget(url: url, needHeaders:true, successCompletion: { (data, isError, isNetworkError,isGoToLogin) in

        print(data)
        print(isError)
        print(isNetworkError)
        print(isGoToLogin)

        if isNetworkError{

            print("network error")

            return
        }

        if isGoToLogin{

            print("isgologin")

            return
        }

        if isError{

            print("error")
            return
        }

        if let response = data as? [String:Any]{

        if let result = response["result"] as? [String:Any]{

            if let Add = result["Add"] as? [[String : Any]]{

                for request in Add {

                    self.ListArray.append(DataModel(JSON: request)!)


                }
            }

          }}

        self.tableview.reloadData()

    })

}

1 Ответ

0 голосов
/ 07 февраля 2019
  1. Создание класса модели данных Я думаю, что вы уже сделали
  2. Создание массива модели Вы также сделали это
  3. Разбор Json, инициализация данных, добавление экземпляров в ваш массив Я не мог видеть, как вы анализируете ваши данные и инициализируете ваши экземпляры модели данных

  4. инициализация данных таблицыс TableViewDataSourceDelegate, с использованием вашего массива На данный момент, на самом деле, я бы предпочел увидеть модель вашей ячейки, я не знаю, как вы можете настроить ее

Этообычно мое решение.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...