У меня есть простой запрос Alamofire, и я разбираю его с SwiftyJSON. Вот код:Alamofire Добавление данных
var fetchedData: [TestDB]? = []
func fetchData() {
Alamofire.request(url!, method: .get).validate().responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
self.fetchedData = [TestDB]()
for dict in json["articles"].array! {
let data = TestDB()
if let image = dict["urlToImage"].string {
data.imageUrls = image
}
if let titlee = dict["title"].string {
data.titlee = titlee
}
if let desc = dict["description"].string {
data.desc = desc
}
self.fetchedData?.append(data)
// If i print fetchedData here, i can see it has right values.
// print(fetchedData)
}
case .failure(let error):
print(error)
}
}
// If i try to print fetchedData here, it's empty.
}
Как я уже сказал в коде, я не могу добавить и использовать свои данные. Я думаю, что это что-то с Alamofire является асинхронным. Но не мог понять, почему. Любая помощь приветствуется. Благодаря!
Вы сделали небольшую ошибку. Вы инициализируете self.fetchedData каждый раз в успешном блоке. Вот почему вы не можете добавлять данные. – sanman
@sanman да, это была ошибка. Но фиксированный код по-прежнему имеет такую же проблему. –