. profileImage
, async, , , , . :
static var profileImage : UIImage? {
get {
let defaults = UserDefaults.standard
guard let imageData = defaults.object(forKey: "profileImage") as? NSData else {
return nil
}
return UIImage(data: Data(referencing: imageData))
}
set {
let defaults = UserDefaults.standard
guard newValue != nil else {
defaults.removeObject(forKey: "profileImage")
return
}
let imageData = NSData(data: UIImagePNGRepresentation(newValue!)!)
defaults.set(imageData, forKey: "profileImage")
}
}
func getProfileImage(completion: (_ image: UIImage?) -> ()) {
guard ProfileAPI.profileImage == nil else {
completion(ViewController.profileImage!)
return
}
SomeImageDownloader.downloadImage("imagePath") { downloadedImage in
completion(downloadedImage)
}
}
, :
getProfileImage { (image) in
if let profileIage = image {
// do something with it
}
}
getProfileImage
profileImage
downloadImage
. getProfileImage
, , downloadImage
. : , , - , .