Reputation: 1183
This is the code is used don't know why this error occurring even i cannot use weak self with struct. want to store blackWhite image of image which existing on selectedicon URL :
struct ServiceViewModel {
private var service: Service
var selectedicon: URL?
var name: String
var subServiceCount: Int {
return service.subServices.count
}
var subServicesViewModel = [SubServiceViewModel]()
var blackWhiteImage: UIImage?
var isSelected: Bool = false
init(service: Service) {
self.service = service
self.selectedicon = URL(string: service.icon)
self.name = service.name
}
mutating func generateBlackAndWhiteImage() {
guard let url = selectedicon else {
return
}
KingfisherManager.shared.retrieveImage(with: url, options: nil, progressBlock: nil) { (image, error, _, _) in
//self.blackWhiteImage = image?.convertBlackAndWhite()
self.blackWhiteImage = #imageLiteral(resourceName: "IM.png")
}
}
}
Upvotes: 1
Views: 1473
Reputation: 51
let `self` = self
// or
let `self` = UnsafeMutablePointer(&self)
KingfisherManager.shared.retrieveImage(with: url, options: nil, progressBlock: nil) {
(image, error, _, _) in
//self.blackWhiteImage = image?.convertBlackAndWhite()
self.blackWhiteImage = #imageLiteral(resourceName: "IM.png")
// or
self.pointee.blackWhiteImage = image?.convertBlackAndWhite()
}
Upvotes: 1