Помогите решить ошибку


#1

Никак не могу понять ошибку, с прошлого своего проекта скопировал аналогию, вроде все верно
https://stackoverflow.com/questions/24795035/swift-extra-argument-in-call Проверял все, вроде типы правильно указаны

07


#2

а где у вас

let user: UserModal

struct UserModal { //пример. может быть по другому
var uid: String
}

увидел толькo

let userId: String

#3

Я делал по аналогии, не создавал структуру User, в первом проекте почему-то все верно работает


#4

Вы когда пишите Place, какие инициализаторы он вам предлогает?


#5

попробуйте сразу обратиться

self.userId

#6

Это уже догадки в слепую. Вдруг у него нету такой переменной.


#7

Верно проверили инициализаторы Place?


#8

Не помогло, еще что удивительно, когда навожусь на user и перехожу “jump to defination”, иногда открывается вообще непонятный файл, а иногда и нормально показывается связь


#9

Вы своим init Snapshot переопределили дефолтный инициализатор в структуре.
Попробуйте сделать так init?(snapshot: DataSnapshot)
И проверьте еще раз что он предложит для инициализации структуры.


#10

В структуре Place изменить на “init?”?


#11

да (________________)


#12

Не получилось


#13

тогда так: convenient init(snapshot: ...)
советую по памяти, лень запускать мак для проверки.


#15

предлагает после convenient ; поставить


#16
  1. проще было бы данный проект в гитхаб залить и дать ссылку. Можно было бы целиком скачать посмотреть и подправить
  2. вопрос на засыпку, вы знаете что такое convenience в конструкторах структур и классов?

#17

сорри, опечатался, должно быть так convenience


#18

Предлагает убрать convenience


#19

вот рабочий пример

struct Person {
    var name: String!
}

extension Person {
    init(data: Data) {
        self.init(name: "")
    }
}

let person = Person(name: String)
let person2 = Person(data: Data)

#20

т.е в extension пишем тот же инит ? Для чего на константы вконце?


#21

да, просто перенесите ваш init в extension, только там нужно вызывать self.init, в который будете передавать значения для каждого свойства.
константа это из моего примера.