Property in Swift - Computed property | Property Observers (WillSet & DidSet)

   Computed property -  Computed properties are part of a property type in Swift.  Stored properties are the most common which save and return a stored value  Computed properties calculate (rather than store) a value. A computed property provides a getter and an optional setter to indirectly access other properties and values. Computed property in swift is an interesting topic as you can write code inside a property in swift. Computed properties are provided by classes, structures, and enumerations but stored properties are provided only by classes and structures. This computed property swift tutorial has some tips on how to use the computed property in the right way and avoid the common mistakes that swift programming beginners do while computed property. Example :- Computed property A Calculate Simple Intrest struct CalculateLoan {      var amount : Int      var rate : Int      var years : Int      var simpleInterest: Int {          get {              return ( amount * rate

Delegate Example in swift

 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