Участник экземпляра & ldquo; xxx & rdquo; не может использоваться для типа & ldquo; XXX & rdquo; - В частности, учебник iOS Swift 4 по расширениям тренировки [дубликат]

Попробуйте эти две вещи отдельно и вместе:

  1. удалите if($_POST['submit']){}
  2. remove $from (только моя кишка)
0
задан 13 May 2016 в 04:30
поделиться

1 ответ

Вы не можете получить доступ к нестатическим материалам непосредственно в статическом методе.

Метод letKnowPersonDeinitialized является статическим, потому что он модифицирован модификатором static:

static func letKnowPersonDeinitialized() {
  ^
  |
here!
}

Свойство name для Person не является статическим, поскольку оно не изменяется static.

Поскольку нестатические члены принадлежат каждому отдельному экземпляру этого класса, а статические члены принадлежат классу сами статические члены не имеют прямого доступа к нестационарным членам. Они могут обращаться к нестационарным членам только при наличии экземпляра.

Чтобы решить вашу проблему, добавьте параметр к методу letKnowPersonDeinitialized:

static func letKnowPersonDeinitialized(person: Person) {
    print(person.name)
}

И в деинициализаторе :

deinit {
    Indicator.letKnowPersonDeinitialized(self)
}

ОЧЕНЬ ВАЖНЫЙ ЗАДАНИЕ:

Я не думаю, что ваш код хорошо спроектирован. Это не то, как вы используете наследование.

Наследование означает, что «это своего рода». Поэтому, если Indicator наследуется от Person, это означает, что индикатор - это своего рода человек.

Согласно здравому смыслу, индикатор не является человеком. Поэтому здесь нецелесообразно использовать наследование. Это мало смысла.

1
ответ дан Sweeper 21 August 2018 в 16:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: