Ваш метод был определен так, чтобы возвращать CLKComplicationTemplate
, но последние четыре case
предложения просто break
, ничего не возвращая.
Поскольку все методы CLKComplicationDataSource
, использующие этот служебный метод, принимают опциональные значения, вы должны просто определить этот метод, чтобы он возвращал необязательный (т. Е. CLKComplicationTemplate?
), и эти четыре случая возвращают nil
:
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
let entry = constructTemplate(for: complication).flatMap {
CLKComplicationTimelineEntry(date: Date(), complicationTemplate: $0)
}
handler(entry)
}
func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
handler(constructTemplate(for: complication))
}
private func constructTemplate(for complication: CLKComplication) -> CLKComplicationTemplate? {
switch complication.family {
case .modularSmall:
...
case .modularLarge:
...
case .extraLarge:
...
case .utilitarianSmallFlat, .utilitarianSmall:
...
case .utilitarianLarge:
...
case .circularSmall:
...
case default:
return nil
}
}