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

Protocol oriented programming Best Way in swift

Protocols in swift are the best way to make your swift code


Protocols in swift


    


  import UIKit

    import Foundation


    protocol ElectricityEquipment {

        var voltage: Int? { get set }

        func start()

        func stop()

    }


    protocol WaterElectricityEquipment {

        var voltage: Int? { get set }

        var waterLevel: Int? {get set}

        func start()

        func stop()

    }



    class Microwave: ElectricityEquipment {

        var voltage: Int?

        

        init?(_voltage: Int){

            guard 50...100 ~= _voltage else{

                print("Required valtage is not in the range 50 to 100")

                return nil

            }

          voltage = _voltage

        }

        

        func start(){

            print("Microwave is started")

        }

        func stop(){

            print("Microwave is stoped")

        }

    }


    class Dishwaser: WaterElectricityEquipment{

        

        var voltage: Int?

        var waterLevel: Int?

        

        init?(_voltage: Int, _waterLevel: Int){

            guard 200...220 ~= _voltage else{

                print("Required valtage is not in the range 200 to 220")

                return nil

            }

            guard 2...5 ~= _waterLevel else{

                print("Required waterLevel is not in the range 3 to 5")

                return nil

            }

          voltage = _voltage

          waterLevel = _waterLevel

        }

        

        func start(){

            print("Dishwaser is started")

        }

        func stop(){

            print("Dishwaser is stoped")

        }

        

    }


    class Kitchen{

        var microwave: Microwave?

        var dishwaser: Dishwaser?

    }


    let objKitchen = Kitchen()


    objKitchen.microwave = Microwave(_voltage: 200)

    objKitchen.microwave?.start()

    objKitchen.dishwaser = Dishwaser(_voltage: 240, _waterLevel: 3)

    objKitchen.dishwaser?.start()



Comments