Я следил за учебным пособием по загрузке URL-адреса изображений и добавлению их в массив для отображения изображений профиля пользователя в UITableView ячеек для каждого пользователя, используя следующий блок кода:Firebase Swift 3 Загрузка изображений профиля в TableView с NSURLSession
let url = NSURL(string: urlString)
NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) in
//download hit an error so lets return out
if error != nil {
print(error)
return
}
dispatch_async(dispatch_get_main_queue(), {
//"profilePics" is my array of UIImages made as a global var
self.profileImages.append(UIImage[data!])
})
}).resume()
Но по какой-то причине «NSURLSession» не появляется, как предложение, пока я программирования и возвращает ошибки, поэтому я изменил все от «NSURL ...» просто «URL ...»:
//Grabbing images from db
print("starting get image block : ")
let url = URL(string: profileImageURL)
URLSession.shared.dataTask(with: url!, completionHandler: {(data, response, error) in
print("grabbing image: ") //Test line for monitor
print(String(describing: data)) //Test line for monitor : returns "nil"
if error != nil{
print(error!)
return
}
DispatchQueue.main.async {
//"profilePics" is my array of UIImages made as a global var
self.profilePics.append(UIImage(data: data!))
print("Image appended")
}
}).resume()
// grabbing images from db end
Но каждый раз, когда я запускаю это, я получаю нуль для данных, d он никогда не присоединяется к моему массиву. Может ли кто-нибудь объяснить, что мне не хватает? Это моя первая попытка с Firebase.
почему вы добавляете данные в NSArray это плохая практика –
@kirtimali, что вы могли бы предложить? – 1QuickQuestion
проверьте это http://stackoverflow.com/questions/24231680/loading-downloading-image-from-url-on-swift –