как показать ответ Alamofire в табличном представлении, используя swift5 - PullRequest
0 голосов
/ 10 октября 2019
 class ViewController: UIViewController{


   override func viewDidLoad() {
    super.viewDidLoad()
     let parameters: [String: Any] = ["userid": "1","start":"0"]
       let url = "https://sample.php"
    self.request = AF.request(url, method: .post, parameters:parameters)
    if let request = request as? DataRequest {
        request.responseString { response in
            do{
                let dictionary = try JSONSerialization.jsonObject(with: response.data!, options: JSONSerialization.ReadingOptions.allowFragments) as! NSDictionary
               print(dictionary)



            }catch{ print("something wrong")

            }
        }
    }
}

var request: Alamofire.Request? {
    didSet {
        //oldValue?.cancel()
    }
}
 }`

код выше для формы данных ответа Alamofire после запроса метода. У меня есть данные ответа от сервера, но как показать данные ответа в табличном представлении, они также скрывают строку json

1 Ответ

0 голосов
/ 10 октября 2019

Вы должны создать один класс модели для хранения данных. Например,

class User: NSObject {

        var ID:Int?
        var FirstName:String?
        var LastName:String?
        var Password:String?
        var Email:String?
        var Gender:String?
        var PhoneNumber:String?

    override init() {}

    init(dic:[String: Any]) {
        self.ID = dic["ID"] as? Int
        self.FirstName = dic["FirstName"] as? String
        self.LastName = dic["LastName"] as? String
        self.Password = dic["Password"] as? String
        self.Email = dic["Email"] as? String
        self.Gender = dic["Gender"] as? String
        self.PhoneNumber = dic["PhoneNumber"] as? String
    }
}

Запрос с использованием Alamofire,

Alamofire.request(url, method: .post, parameters: parameters).responseJSON { (response) in
            if response.result.isSuccess == true {
                if let JSON = response.result.value {
                    if let dictionary = JSON as? [String: Any] {
                        let isSuccess = dictionary["success"] as! Bool
                        if isSuccess == true {
                            if let userDic = dictionary["result"] {
                                let currentUser = User.init(dic: userDic as! [String : Any])
                            }
                        }
                    }
                }
            }
}

Теперь вы можете получить доступ к значению любого поля для ex. "FirstName" как показано ниже,

let fName = currentUser.FirstName

И не забывайте, что все имена ключей совпадают с полученными ключами JSON.

...