я пытаюсь создать осложнение для watchOS2. Я создал новую цель для своего приложения для iOS - с помощью Glances and Complications я хочу иметь только одно Modular Large Complication.
Когда я бегу, пытаясь установить сложность, часы зависают (как на симуляторе, так и на настоящих часах)
Вот мой код осложнения:
-(void)getCurrentTimelineEntryForComplication:(CLKComplication *)complication withHandler:(void (^)(CLKComplicationTimelineEntry * _Nullable))handler {
if (complication.family == CLKComplicationFamilyModularLarge) {
CLKComplicationTemplateModularLargeColumns *template = [[CLKComplicationTemplateModularLargeColumns alloc] init];
NSString *title = NSLocalizedString(@"TODAYINTAKE", nil);
template.row1Column1TextProvider = [CLKSimpleTextProvider textProviderWithText:title];
template.row2Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"kcal"];
template.row3Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"ml"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([self isDateToday:[defaults objectForKey:@"dateSaved"]]) {
template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@",[defaults objectForKey:@"energy"]];
template.row3Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@", [defaults objectForKey:@"water"]];
} else {
template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
template.row3Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
}
template.row2ImageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"energy64"]];
template.row3ImageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"water64"]];
template.row1ImageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"64"]];
template.row1Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@" "];
CLKComplicationTimelineEntry *entry = [CLKComplicationTimelineEntry entryWithDate:[NSDate new] complicationTemplate:template];
handler(entry);
} else handler(nil);
}
-(void)getPlaceholderTemplateForComplication:(CLKComplication *)complication withHandler:(void (^)(CLKComplicationTemplate * _Nullable))handler {
if (complication.family == CLKComplicationFamilyModularLarge) {
CLKComplicationTemplateModularLargeTable *template = [[CLKComplicationTemplateModularLargeTable alloc] init];
NSString *title = NSLocalizedString(@"TODAYINTAKE", nil);
template.headerTextProvider = [CLKSimpleTextProvider textProviderWithText:title];
template.row1Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"kcal"];
template.row2Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"ml"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([self isDateToday:[defaults objectForKey:@"dateSaved"]]) {
template.row1Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@",[defaults objectForKey:@"energy"]];
template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@", [defaults objectForKey:@"water"]];
} else {
template.row1Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
}
handler(template);
} else handler(nil);
}
Я передаю CLKComplicationTimeTravelDirectionNone
в качестве поддерживаемых направлений путешествия во времени
Я беспомощен, так как не вижу ошибок в консоли, а симулятор или устройство просто зависает.
Из отчета о сбое карусели я смог прочитать эту информацию:
*** Завершение работы приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Требуется приложение. bundleID: ql.ManaEU.watchkitapp appToReplace: proxy: ql.ManaEU.watchkitapp ‹(null) Not found in database> 'завершается неперехваченным исключением типа NSException abort () под названием CoreSimulator 191.4 - Устройство: Apple Часы - 42 мм - Время выполнения: watchOS 2.0 (13S343) - Тип устройства: Apple Watch - 42 мм
getPlaceholderTemplateForComplication
код, поскольку от негоClockKit
зависит настройка усложнения циферблата. - person   schedule 14.12.2015