Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save OctoberHammer/fb5deea471d2e67ab620f6a36bd43a2c to your computer and use it in GitHub Desktop.
Save OctoberHammer/fb5deea471d2e67ab620f6a36bd43a2c to your computer and use it in GitHub Desktop.
Затем я попытался все-таки тупо, кодом в стиле "Пирамида погибели", получить данные картинки для 3-х подряд элементов. Получилось как ниже
if pfCategories.count > 0 {
//Получаю 1-ю запись, с самой большой картинкой. Хочу сначала вытащить ее, и только потом обрабатывать последовательно остальные записи
let category = Category(pfCategories[0].objectId!, name: pfCategories[0]["name"] as! String)//по сути я создаю новый инстанс
category.url = pfCategories[0]["URL"] as? String
if let picture = pfCategories[0].value(forKey: "picture") as? PFFile {
category.retrieveImage(from: picture) {(_ imageData: Data?) -> Void in
category.pictureData = imageData//вот они, данные картинки
catSelection?.append(category)//добавил
//====
let category = Category(pfCategories[1].objectId!, name: pfCategories[1]["name"] as! String)//по сути я создаю новый инстанс
category.url = pfCategories[1]["URL"] as? String
if let picture = pfCategories[1].value(forKey: "picture") as? PFFile {
category.retrieveImage(from: picture) {(_ imageData: Data?) -> Void in
category.pictureData = imageData//вот они, данные картинки
catSelection?.append(category)//добавил
//====
let category = Category(pfCategories[2].objectId!, name: pfCategories[2]["name"] as! String)//по сути я создаю новый инстанс
category.url = pfCategories[2]["URL"] as? String
if let picture = pfCategories[2].value(forKey: "picture") as? PFFile {
category.retrieveImage(from: picture) {(_ imageData: Data?) -> Void in
category.pictureData = imageData//вот они, данные картинки
catSelection?.append(category)//добавил
}
}
//====
}
}
//====
}
}
// Проинсталлив приложение на телефон с медленным интернетом (то есть выключенным вай-фаем), я убедился что картинки скачиваются последовательно, как я и хотел.
//Это важный момент. Потому что например на симуляторе, при интернете в 100 Мб, даже когда получение каждой картинки происходит паралельно, большая картинка (2.5 мб) успевает прийти 1-й.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment