在 didReceiveUserInfo 之前调用 TableView 设置

TableView setup gets called before didReceiveUserInfo

我的 table 总是以空结尾,因为 didRecieveUserInfo 直到 doTable() 被调用后才被调用。

我在 didRecieveUserInfo 中获取了所有正确的数据,但我的应用不知道这一点,因为 didRecieveUserInfo 直到 [=34] 之后才被调用=] 已经设置好。

有什么想法吗?我觉得它一定很简单,这是我的代码:

ExtensionDelegate:

func applicationDidFinishLaunching() {
    if (WCSession.isSupported()) {
        let session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession()
    }
}

func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {


    if let tCValue = userInfo["Tr"] as? String, let mValue = userInfo["Mp"] as? String {

        receivedData.append(["Tr" : tCValue , "Mp" : mValue])
        evn.append(Evnt(dataDictionary: ["Tr" : tCValue , "Mp" : mValue]))

    } else {
        // None
    }

}

InterfaceController:

override func willActivate() {
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()
    doTable()
}

func doTable() {

    if WCSession.defaultSession().reachable == true {

    // SO
    let myDelegate = WKExtension.sharedExtension().delegate as! ExtensionDelegate
    let evM = myDelegate.evn

    self.rowTable.setNumberOfRows(evM.count, withRowType: "rows")


    for (index, evt) in evM.enumerate() {

        if let row = rowTable.rowControllerAtIndex(index) as? TableRowController {

            row.mLabel.setText(evt.maT)

        } else {
          // None  
        }
    }

    }
    else {
          // None  
    }
}

在接口控制器中实现 WCSession 委托,并在收到数据后调用 doTable()