這裏有一個簡單的問題,我在開始試驗WatchKit和複雜情況時遇到了一個問題。在Apple Watch上強制更新佔位符併發症
我創建了一個簡單的應用程序,它顯示了一個公共字符串「Y」的複雜性,通過點擊它,Apple Watch應用程序顯示爲一個簡單的開關。 我在ComplicationController.swift的getPlaceholderTemplateForComplication
中編寫了代碼,並在InterfaceController.swift中添加了一個開關IBAction
。
通過改變開關的值,公共字符串在「N」和「Y」之間循環。我想讓它在併發症中也發生變化。不過,我注意到併發症始終保持在「Y」狀態。
我發現了一個關於強制併發症更新的類似問題,但它與TimeLine併發症func而不是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)
}
}
我在哪裏有寫上述FUNC,爲了能夠從IBAction爲裏面打電話了嗎?
如果我把它寫在ComplicationController.swift,從IBAction爲稱其爲InterfaceController.swift爲:
ComplicationController.updateComplication()
我得到的錯誤「缺少在調用參數#1說法」,
而如果我在InterfaceController中編寫它並在IBAction中調用它,雖然構建成功,但在運行應用程序並更改開關值時,出現以下錯誤:「致命錯誤:意外地發現零,同時展開可選值「就行了:
for complication in complicationServer.activeComplications
func updateComplication。
有沒有什麼辦法可以知道complicationServer.activeComplications中的哪些複雜是你的?在用戶的錶盤上刷新全部四個(或者很多)併發症似乎是浪費,其他應用程序的複雜性包括在內。 – Cindeselia