Член экземпляра 'xxx' не может использоваться для типа 'xxx' [duplicate]

JSON и массив из XML в трех строках:

$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

Ta da!

18
задан 66o 11 December 2015 в 15:37
поделиться

2 ответа

Попробуйте:

class SomeClass {
  var coreDataStuff = CoreDataStuff!
  lazy var somethingElse: SomethingElse = SomethingElse(coreDataStuff: self.coreDataStuff)
}

Важно уточнить тип вашего ленивого var и добавить self. к аргументу, который вы передаете

29
ответ дан AncAinu 27 August 2018 в 09:20
поделиться

Есть два требования, которые легко упускать из виду с ленивыми переменными в Swift, и, к сожалению, предупреждения являются загадочными и не объясняют, как их исправить.

Lazy Variable Requirements

  1. Использовать self.: При обращении к членам экземпляра вы должны использовать self.. (Например, self.radius.) Если вы забудете использовать self., вы получите эту ошибку: член экземпляра «myVariable» не может использоваться в типе «MyType»
  2. Укажите тип: Тип не может быть выведенным, он должен быть явно написан. (Например, : Float.) Если вы забудете указать тип, вы получите эту ошибку: использование неразрешенного идентификатора «self»

Пример

struct Circle {
  let radius: Float
  lazy var diameter: Float = self.radius * 2 // Good
//lazy var diameter        =      radius * 2 // Bad (Compile error)
}
7
ответ дан Senseful 27 August 2018 в 09:20
поделиться
Другие вопросы по тегам:

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