Доброго дня! Не пойму, почему массив пустой, функция же в него добавляет элементы.
print(arrayOfBookmarks, “initial”) - пустой
print(self.arrayOfBookmarks, “print 1”) - с элементами
print(self.arrayOfBookmarks, “inside 2” - с элементами
print(arrayOfBookmarks, “inside 3” - пустой
print(arrayOfBookmarks, “print 4”) - пустой
Также пробовал функцию, которая возвращает массив. Такая же печаль. Функция возвращает пустой массив. Не пойму почему внутри цикла for … in … в массив добавляются элементы, а за его пределами массив пустой.
Предыдущие темы посмотрел и попробовал решения из них, но результата ноль.
Прошу помощи у знатоков.
var arrayOfBookmarks = [BookmarksModel]()
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
fetchData()
print(arrayOfBookmarks, "initial")
}
func fetchData() {
loadingActivityIndicator.startAnimating()
bookmarksTable.isHidden = true
for i in 0..<arrayID.count {
let jsonURL = "https://xxxxxxxx?linkCode=\(arrayLink[i])&elementId=\(arrayID[i])"
//guard let url = URL(string: jsonURL) else { return }
let url = URL(string: jsonURL) ?? URL(string: "https://mfc.group/mobile-api")
URLSession.shared.dataTask(with: url!) { (data, response, error) in
guard let data = data else { return }
do {
let bookmarksMod = try JSONDecoder().decode(BookmarksModel.self, from: data)
self.arrayOfBookmarks.append(bookmarksMod)
print(self.arrayOfBookmarks, "print 1")
} catch let error {
print("json serialization error", error)
}
print(self.arrayOfBookmarks, "inside 2", self.arrayOfBookmarks.count)
}.resume()
print(arrayOfBookmarks, "inside 3", arrayOfBookmarks.count)
}
print(arrayOfBookmarks, "print 4")
}