Что именно за ошибку я получаю здесь? (iOS, Xcode, Healthkit)

#ios #swift #xcode #healthkit

#iOS #swift #xcode — код #healthkit

Вопрос:

 func reuqestConnection(){
    var permReq: Set? = [HKObjectType.quantityType(forIdentifier: .heartRateVariabilitySDNN),
                        HKObjectType.quantityType(forIdentifier: .restingHeartRate),
                        HKObjectType.quantityType(forIdentifier: .heartRate)]
    if let healthStore = healthStore{
        healthStore.requestAuthorization(toShare: nil, read: permReq){ (success, error) in
            if(!success){
                //redirect to error view to try again.
            }
        }
    }
}//func ends
 

Это код, нет ничего другого, кроме функции init, которая просто определяет HKHealthStore. Ошибка, которую я получаю, возникает при запросе авторизации для

 Cannot convert value of type 'Set<HKQuantityType?>?' to expected argument type 'Set<HKObjectType>?'
 

Я не уверен, что это значит, так как ранее я не получал эту ошибку. Что я, по-твоему, здесь должен делать?

Комментарии:

1. Вы заполняете массив элементами типа (Set<HKQuantityType?>?), В то время как ожидаемый — другой (Set).

Ответ №1:

Попробуй это. В настоящее время я использовал принудительное разворачивание для HKObjectType.quantityType . Ты должен справиться с этим.

 func reuqestConnection(){
    var permReq: Set = [HKObjectType.quantityType(forIdentifier: .heartRateVariabilitySDNN)!,
                        HKObjectType.quantityType(forIdentifier: .restingHeartRate)!,
                        HKObjectType.quantityType(forIdentifier: .heartRate)!]
    if let healthStore = healthStore{
        healthStore.requestAuthorization(toShare: nil, read: permReq ){ (success, error) in
            if(!success){
                //redirect to error view to try again.
            }
        }
    }
}
 

Комментарии:

1. О, хорошо, я пропустил!. Спасибо!