Add Two Number With Simple Delegate - Swift delegate protocol is with simple examples to understand the delegate pattern using protocols in swift.
import UIKit
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
class Developer {
var manager: Manager?
func developerWillAddTwoNumbers(a: Int, b: Int){
let result = a + b
manager?.addTwoNumber(result: result)
}
}
class Manager {
var developer: Developer?
init (_develoepr: Developer){
self.developer = _develoepr
developer?.manager = self
}
func addTwoNumber(result: Int){
print("Result: === \(result)")
}
func add(x: Int, y: Int){
developer?.developerWillAddTwoNumbers(a: x, b: y)
}
}
let objManager = Manager(_develoepr: Developer())
objManager.add(x: 10, y: 5)
Download Image With Delegate & protocol
import UIKit
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
struct Images {
static let imageUrl = "https://www.easemytrip.com/images/offer-img/EMTFirst_hp.png"
}
protocol ImageDownloadDlegate : AnyObject {
func didFinishedDownloadImage(result: Data?)
}
class ImageDownloader {
weak var imageDownloadDlegate: ImageDownloadDlegate?
func downloadImageServer(url: URL){
URLSession.shared.dataTask(with: url) { imageData, response, error in
self.imageDownloadDlegate?.didFinishedDownloadImage(result: imageData)
}.resume()
}
}
class ImageViewer: ImageDownloadDlegate {
var imageDownloader: ImageDownloader?
init(_imageDownloader: ImageDownloader){
self.imageDownloader = _imageDownloader
imageDownloader?.imageDownloadDlegate = self
imageDownloader?.downloadImageServer(url: URL(string: Images.imageUrl)!)
}
func didFinishedDownloadImage(result: Data?) {
let image = UIImage(data: result!)
}
}
let objImageViewer = ImageViewer(_imageDownloader: ImageDownloader())
Comments
Post a Comment