Как объявить имя экземпляра для разных классов в Swift - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть два класса, которые имеют одинаковые переменные и одни и те же методы, но методы делают разные вещи.Я хочу объявить имя экземпляра и позже я хочу решить, какой из классов будет создан.

class A {
   var x : Int = 0

   func calc() {
       x = 10     
   }
}

class B {
   var x : Int = 0

   func calc() {
       x = 33     
   }
}

class X : UIViewController {
   var value : Int = 0
   var AorB : (class A or B, I decide later on in the code)

   ...

   override func viewDidLoad() {
      super.viewDidLoad()

      // Here I want to decide that aorB is an Instance of A or of B

}

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 29 сентября 2019

Попробуйте этот метод:

    protocol SomeProtocol{}

    class A:SomeProtocol {
           var x : Int = 0

           func calc() {
               x = 10     
           }
    }

    class B:SomeProtocol {
           var x : Int = 0

           func calc() {
               x = 33     
           }
    }

    class X : UIViewController {
           var value : Int = 0

           var AorB : SomeProtocol!

           ...

           override func viewDidLoad() {
              super.viewDidLoad()

              AorB = A()
              AorB = B()

              // Here I want to decide that aorB is an Instance of A or of B

  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...