#swift #xcode
#swift #xcode
Вопрос:
Я анализирую данные из API. Вывод печатается, но данные не добавляются в массив.Я пытаюсь получить tableview для отображения проанализированных данных, но массив, который должен заполнять мой tableview, не добавляется. Может кто-нибудь быстро взглянуть и сообщить мне, что я делаю не так?
var jsonServiceInfo = [SmsHistory]()
func apiFunction(selectedValue : String){
let userToken: HTTPHeaders = [
"Authorization": "bearer (accessToken)",
"Content-Type": "application/x-www-form-urlencoded"
]
let parms : [String : String] = ["CustomerID" : customerID ,"DateTo" : dateTotxtfield.text!, "DateFrom" : dateFromtxtfield.text! ]
if selectedValue == "SMS"{
getSMSHistory(url: getSMSHistoryUrl, parameter: parms, token: userToken){
(isDone) in
if isDone{
self.messageHistorytableview.reloadData()
}
}
}
}
func getSMSHistory(url : String , parameter : [String : String] , token : HTTPHeaders , completion : @escaping (_ isDone : Bool) -> ()){
Alamofire.request(url, method: .get, parameters: parameter, headers: token).responseJSON { (response) in
if response.result.isSuccess{
let jsonArray: JSON = JSON(response.result.value!)
let jsonContent = jsonArray["Content"]
print(jsonContent)
print(jsonContent)
for arr in jsonContent.arrayValue{
self.jsonServiceInfo.append(SmsHistory(json: arr))
}
}
completion(true)
}
}
func numberOfSections(in tableView: UITableView) -> Int {
return jsonServiceInfo.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "customMessageCell" , for: indexPath) as! SMSHistoryTableViewCell
cell.messagelbl.text = jsonServiceInfo[indexPath.row].smsBody
return cell
}
Ответ №1:
Вы перепутали содержимое numberOfRowsInSection
и numberOfSections
. Последний должен возвращать 1
Комментарии:
1. Спасибо, что указали на мою проблему. Я потратил на это 2 дня. еще раз спасибо