Я пытаюсь развить свои навыки в Swift и буду рад любой помощи в том, как пользователь «бросает» в функцию ниже.
Я думаю, что это удобный способ выбросить пользователя, чтобы я мог представить ему контроллер предупреждений, сообщая ему, что не так:
enum networkError: Error {
case invalidURL
case invalidUserinfo
case invalidData
case standard
case nilProperty
}
func createUsers(completion: @escaping(User) -> ()) {
REF_USER.observe(.childAdded) { (snapshot) in
let uid = snapshot.key
guard
let dict = snapshot.value as? Dictionary<String,String>,
let fullname = dict["fullname"],
let profileImageUrl = dict["profileImageUrl"]
else { return }
guard let url = URL(string: profileImageUrl) else { return }
URLSession.shared.dataTask(with: url) { (d, r, e) in
if e != nil {
print("DEBUG: Error fetching users profile image", e)
return
}
guard let data = d else { return }
guard let image = UIImage(data: data) else { return }
let user = User(uid: uid, fullname: fullname, profileImage: image, isFollowed: false)
completion(user)
}.resume()
}
}