Разница между двумя вызовами методов - PullRequest
0 голосов
/ 06 мая 2020

Учитывая следующее определение:

func retrieveData(for id: Int, completion: @escaping (Record) -> ())

В чем разница между следующими двумя вызовами retrieveData ?

первым вызовом:

let id: Int = 1 
retrieveData(id: id) {
    self.update(with: $0)
}

второй звонок:

let id: Int = 1 
retrieveData(id: id, completion: {
    self.update(with: $0)
})

1 Ответ

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

В методе

func retrieveData(for id: Int, completion: @escaping (Record) -> ())

completion - это трейлинг-закрытие . Это последний аргумент метода . Итак, в Swift мы можем опустить запись метки аргумента в списке при вызове метода, то есть

retrieveData(for: id) {
    //your code..
}

Вы также можете называть его как

retrieveData(for: id, completion: {
    //your code..
}) 

Значит, называть его можно обоими способами. Твой выбор. Хотя первый более чище и рекомендуется. Подробнее об этом здесь .

...