ExtensionDelegate数组中没有项目

时间:2016-02-20 01:26:13

标签: ios arrays xcode swift watchkit

我来自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

1 个答案:

答案 0 :(得分:1)

当您声明evnts时,您已将其初始化为空数组([Evnt]())。

当你从getCurrentTimelineEntryForComplication(complication: withHandler:)访问它时,如果没有修改数组,它仍然是空的。

session(session:didReceiveUserInfo:)内,您可以向数组添加项目,然后立即致电doTable(),此时ExtensionDelegate.evnts不为空,因为它包含您之前添加的项目。< / p>

鉴于您在调用getCurrentTimelineEntryForComplication(complication: withHandler:)时没有任何项目,似乎会在session(session:didReceiveUserInfo:)发生之前发生这种情况。

如果要在调用getCurrentTimelineEntryForComplication(complication: withHandler:)时确保有数据,则应在WatchKit应用程序生命周期之前或之后加载一些数据。