这是我在开始尝试 WatchKit 和并发症时面临的一个简单问题。
我创建了一个简单的应用程序,它显示了一个带有公共字符串“Y”的复杂功能,单击它,Apple Watch 应用程序就会显示一个简单的开关。getPlaceholderTemplateForComplication
我在 ComplicationController.swift中编写了我的代码,并IBAction
在 InterfaceController.swift 中添加了一个开关。
通过改变开关的值,公共字符串在“N”和“Y”之间循环。我也想改变它的并发症。然而,我注意到并发症保持在最初的“Y”状态。
我发现了一个关于强制复杂更新的类似问题,但它与 TimeLine 复杂函数有关,而不是 placeHolder。
func updateComplication() {
let complicationServer = CLKComplicationServer.sharedInstance()
for complication in complicationServer.activeComplications {
complicationServer.reloadTimelineForComplication(complication)
}
}
我不清楚在我的情况下在哪里以及如何使用它。
正如建议的那样,我在 getCurrentTimelineEntryForComplication 上工作。
为了仅测试 ModularComplication,我使用了:
switch complication.family {
case .ModularSmall:
let modularSmallTemplate =
CLKComplicationTemplateModularSmallRingText()
modularSmallTemplate.textProvider =
CLKSimpleTextProvider(text: stringa)
modularSmallTemplate.fillFraction = 0.95
modularSmallTemplate.ringStyle = CLKComplicationRingStyle.Closed
let template = CLKComplicationTimelineEntry(
date: NSDate(), complicationTemplate: modularSmallTemplate)
handler(template)
default:
handler(nil)
}
我在 InterfaceController.swift 中有开关 IBAction。
我在使用时遇到问题:
func updateComplication() {
let complicationServer = CLKComplicationServer.sharedInstance()
for complication in complicationServer.activeComplications {
complicationServer.reloadTimelineForComplication(complication)
}
}
为了能够从 IBAction 内部调用它,我必须在哪里编写上述函数?
如果我在 ComplicationController.swift 中编写它,则通过从 InterfaceController.swift 中的 IBAction 调用它,如下所示:
ComplicationController.updateComplication()
我收到错误“在调用中缺少参数 #1 的参数”,
而如果我在 InterfaceController 中编写它并在 IBAction 中调用它,虽然构建成功,但在运行应用程序并更改开关的值时,我收到以下错误:“致命错误:在展开可选值时意外发现 nil”在线上:
for complication in complicationServer.activeComplications
func updateComplication。