Возвратите заявление в закрытии - PullRequest
0 голосов
/ 09 февраля 2019

Следующие операторы возврата имеют какое-либо значение внутри замыкания.Они возвращаются, как задумано?

fetchAPI() { (result, error) in
    if error != nil {
        // Print error
        return
    } else {
        if result?.data != nil {
            if (result?.success)! {
                // Do stuff
            }
        } else {
            // Print error
            return
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Нет, они не имеют значения.

Оба оператора return являются избыточными и могут быть опущены.И оператор return в замыкании закрывает замыкание, а не функцию.

0 голосов
/ 09 февраля 2019

Существуют другие операторы управления потоком Swift, которые могут сделать ваш код более читабельным вместо вложенных if-ов.

fetchAPI() { result, error in
    // Check that error is nil
    guard error == nil else {
        // print error
        return
    }

    // Check that result is not nil and result.success is true
    guard let result = result, result.success else {
        // print error
        return
    }

    // Now you have a valid response. Do something with it
}
...