У меня есть приложение iOS, которое отправляет запрос GET на мой API, чтобы получить все сообщения, которые сохраняются в базе данных.
Я пытаюсь заполнить данные, полученные в ячейки UITableView. Вот основной используемый код:
if let jsonArray = try JSONSerialization.jsonObject(with:
data, options : .allowFragments) as? [Dictionary<String,Any>]
{
print(jsonArray) // use the json here
//loop through the jsonArray (which holds the objects)
for deal in jsonArray {
//loop through indivdual objects
for (key, value) in deal {
var newDeal:Deal!
print(key, value)
if(key == "location"){
newDeal.address = value as! String //after assigning, newDeal is null
}
if(key == "description"){
newDeal.description = value as! String //after assigning, newDeal is null
}
if(key == "promotion_end"){
newDeal.availability = value as! String //after assigning, newDeal is null
}
if(key == "user_id"){
newDeal.poster = value as! String //after assigning, newDeal is null
}
if(key == "created_at"){
newDeal.postedOn = value as! String //after assigning, newDeal is null
}
self.deals.append(newDeal)//null error
}
//Example of Deal object:
// Deal(poster: "Company name", postedOn: "2020-02-15", description: "Body of post goes here", availability: "11am-2pm Sat/Sun", address: "300 Somewhere Street")
}
Я перебираю каждый объект внутри jsonArray. Я проверяю имя ключа, и если ключ, например, == для «местоположения», то устанавливаю значение, связанное с ключом, по адресу, пытаясь «создать» объект Deal для каждой ячейки tableView. поскольку выполняется для l oop.
Почему используются newDeal.address, newDeal.description et c. нуль после присвоения значения? Ниже приведено несколько изображений, которые я сделал во время отладки, и формат данных.