Swift - использовать общую переменную для нескольких типов данных - PullRequest
0 голосов
/ 07 мая 2020

У меня есть много необязательных переменных, которые являются подклассами одного и того же класса:

var variable1: Experience.subclass1!
var variable2: Experience.subclass2!
var variable3: Experience.subclass3!
...

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

var commonVariable = variable1
...
commonVariable = variable2 // change the value inside another function

Есть идеи, как включить эту функцию? Это значительно упростит мой код.

Ответы [ 2 ]

2 голосов
/ 07 мая 2020

Вы можете сделать так, чтобы Subclass1, Subclass2 и Subclass3 соответствовали какому-то протоколу.

Ваш протокол мог бы иметь форму:

protocol Experienced {

     var somethingCommonYouNeed: String { get set }

     func someCommonFunction() -> String
}

Затем вы должны сделать 'Subclass1' Subclass2 'и 'Subclass3' все соответствует протоколу Experienced.

class Subclass1: Experienced {

   var somethingCommonYouNeed = "Hello"

   func someCommonFunction() -> String {

        return "Hello"
   }

   ...existing code...
}

Затем вы должны сделать тип commonVariable Experienced.

var commonVariable: Experienced!

Оттуда вы можете сказать commonVariable.somethingCommonYouNeed для доступа к вашей собственности или функции, которая используется во всех экземплярах, соответствующих протоколу «Опытный».

1 голос
/ 07 мая 2020

Если commonVariable предназначен только для общих функций, вы можете использовать

var commonVariable: Experience = variable1
...
commonVariable = variable2

, тогда вы будете использовать любое значение commonVariable как Experience.

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