我来自ExtensionDelegate
的{{1}}来拨打ComplicationController
数组。
似乎可以在evnts
中正常使用ExtensionDelegate
,这两个都在我的监视应用中。
但出于某些原因,当我从InterfaceController
呼叫我的evnts
时,我在ExtensionDelegate
数组中获得了0项。
有什么想法吗?谢谢!
ComplicationController
ExtensionDelegate
class ExtensionDelegate: NSObject, WKExtensionDelegate {
static var evnts = [Evnt]()
ComplicationController
当我从 func getCurrentTimelineEntryForComplication(complication: CLKComplication, withHandler handler: ((CLKComplicationTimelineEntry?) -> Void)) {
// extEvnts = 0 somehow here
let extEvnts = ExtensionDelegate.evnts
执行此操作时,此操作正常:
InterfaceController
答案 0 :(得分:1)
当您声明evnts
时,您已将其初始化为空数组([Evnt]()
)。
当你从getCurrentTimelineEntryForComplication(complication: withHandler:)
访问它时,如果没有修改数组,它仍然是空的。
在session(session:didReceiveUserInfo:)
内,您可以向数组添加项目,然后立即致电doTable()
,此时ExtensionDelegate.evnts
不为空,因为它包含您之前添加的项目。< / p>
鉴于您在调用getCurrentTimelineEntryForComplication(complication: withHandler:)
时没有任何项目,似乎会在session(session:didReceiveUserInfo:)
发生之前发生这种情况。
如果要在调用getCurrentTimelineEntryForComplication(complication: withHandler:)
时确保有数据,则应在WatchKit应用程序生命周期之前或之后加载一些数据。