Какой быстрый документ или видео мне нужно прочитать, чтобы понять, как работает этот ResultsHandler? - PullRequest
0 голосов
/ 01 ноября 2018

Привет, я новичок-кодировщик, который занимается программированием. Я хочу получить свою учетную запись с моего iPhone

поэтому я начинаю изучать Xcode и swift.

Я могу написать скрипт bash и немного Python.

но я действительно не могу понять следующее.

С https://developer.apple.com/documentation/healthkit/hkstatisticscollectionquery

    query.initialResultsHandler = {
    query, results, error in

// Мое понимание этого обработчика - неизвестный тип или вещь для меня, как я могу узнать, что это такое и как использовать его с веб-страницы Apple? Я могу сказать, прочитав страницу Apple, она имеет три компонента и Декларация говорит, что это вар? как

    var initialResultsHandler: ((HKStatisticsCollectionQuery, HKStatisticsCollection?, Error?) -> Void)? { get set }

так это вар с тремя вещами? так это кортеж? а можно получить и установить!?

Так что я думаю, что приведенный выше код означает, что нужно поместить запрос var в HKStatisticsCollectionQuery от hander, получить HKStatisticsCollectionQuery от hander для получения результатов var и обработать Error to local var error

Самое главное, что такое "в" после ошибки? Я только знаю, что вы можете для xxxx в yyyy и создать цикл, но без использования для означает, что? в каком документе это объясняется?

    guard let statsCollection = results else {
        // Perform proper error handling here
        fatalError("*** An error occurred while calculating the statistics: \(error?.localizedDescription) ***")
    }

    let endDate = NSDate()

    guard let startDate = calendar.dateByAddingUnit(.Month, value: -3, toDate: endDate, options: []) else {
        fatalError("*** Unable to calculate the start date ***")
    }

1 Ответ

0 голосов
/ 01 ноября 2018

Это закрытие, на которое вы смотрите. Три переменные являются входными аргументами замыкания, которое вы называете query, results и error. Вы можете также дать им любое другое имя, так как они существуют только внутри замыкания, и в сигнатуре типа функции используются только их типы.

Ключевое слово in указывает начало тела закрытия.

Для получения дополнительной информации по этой теме обратитесь к главе Замыкания языка программирования Swift .

...