观看连接会话问题

Watch connectivity session issues

我正在尝试从手表扩展程序向 phone 发送消息以更新复杂功能。

AppDelegate.swift

var session = WCSession.defaultSession()

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        if WCSession.isSupported(){
            session.delegate = self
            session.activateSession()
        }
        return true
}

func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
        replyHandler(["scheduleNames":scheduleNames, "scheduleData":scheduleData])
    }

ExtensionDelegate.swift

override init(){
    super.init()
    if WCSession.isSupported(){
        session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession()
    }
    self.sendMessage()
}

func sendMessage(){
        print("Attempting to send message")
        session.sendMessage(["Sender": "Complication"], replyHandler: {
            reply in
            print(reply.description)
            }, errorHandler: {
                error in
                print(error.description)
        })

    }

但是当我 运行 手表模拟器(并且 phone 应用程序未打开)时,我收到

Error Domain=WCErrorDomain Code=7007 "WatchConnectivity session on paired device is not reachable."

这也出现在实体 phone 和观看中。

可能是什么原因造成的?

更新
只有当我从分机拨打电话时才会发生这种情况。手表应用程序可以正常发送和接收消息。此外,它在从 applicationDidFinishLaunching() 调用时有效,但在扩展委托中无效。

更新
我修复了之前的问题,现在得到

WatchConnectivity session has no delegate.

感谢,我解决了这个问题。在 requestedUpdateDidBegin() 中从 Complication(我正在做的)调用执行一个异步方法 一个异步方法中,导致更新函数在 sendMessage 函数之前结束 returns.