我正在测试,并能够在一个非常简单的应用程序中重现此内容。我正在观看WWDC 2015视频:https://developer.apple.com/videos/play/wwdc2015/209/
另一个使用相同信息的教程是:https://www.bignerdranch.com/blog/watchkit-2-complications/
就像WWDC视频一样,我希望我的应用仅提供CLKComplicationTemplateModularLargeStandardBody
并发症。因此,在扩展程序的目标常规设置中,我仅启用了Modular Large
。
为了进行简单测试,我只添加了占位符的代码:
- (void)getLocalizableSampleTemplateForComplication:(CLKComplication *)complication withHandler:(void(^)(CLKComplicationTemplate * __nullable complicationTemplate))handler {
// This method will be called once per supported complication, and the results will be cached
NSLog(@"getLocalizableSampleTemplateForComplication: %ld",(long)complication.family);
if (complication.family==CLKComplicationFamilyModularLarge) {
CLKComplicationTemplateModularLargeStandardBody *template = [[CLKComplicationTemplateModularLargeStandardBody alloc] init];
template.headerTextProvider=[CLKSimpleTextProvider textProviderWithText:@"Date"];
template.body1TextProvider=[CLKSimpleTextProvider textProviderWithText:@"Class"];
template.body2TextProvider=[CLKSimpleTextProvider textProviderWithText:@"Location"];
handler(template);
} else {
handler(nil);
}
}
此后,我删除甚至重置了iPhone和Watch模拟器。然后运行该应用程序。在Infograph Modular
表盘的手表的自定义屏幕中,我看不到我的应用程序可用。
一个有趣的事情(错误???),我注意到,如果我进入扩展程序的常规设置并启用所有复杂功能,它将显示出来。
但是我不想提供其他类型的并发症。我只想为我的应用程序提供Modular Large。这是一个错误吗?
我注意到的另一件事是,占位符显示--------而不是我提供的TextProvider模板。这是另一个错误吗?
我已重置模拟器,从手表和iPhone中删除了我的应用很多次,没有解决方案。重置后,我的NSLog
的getLocalizableSampleTemplateForComplication
确实打印了,但是复杂性没有出现在自定义屏幕中。
我遇到了完全相同的问题。您能解决这个问题吗?