我尝试在模拟器上运行我的项目,但 iOS 端未激活,只有 watch 端能够激活。
这是我的 ScoresInterfaceController.swift(观看端)
import WatchConnectivity
class ScoresInterfaceController: WKInterfaceController, WCSessionDelegate {
// Used to send information to the iOS app
var applicationDict = [String: Int]()
// Starts a session to communicate with the iOS app
var session: WCSession!
// For WCSession
override init() {
super.init()
if(WCSession.isSupported()) {
session = WCSession.default()
session.delegate = self
session.activate()
}
}
func session(_ session: WCSession,
activationDidCompleteWith activationState: WCSessionActivationState,
error: Error?) {}
这是我的 ScoreViewController.swift (iOS 端)
import WatchConnectivity
class ScoreViewController: UIViewController, WCSessionDelegate {
// Starts a session to communicate with the Watch app
var session: WCSession!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if(WCSession.isSupported()) {
session = WCSession.default()
session.delegate = self
session.activate() //Not activating when run on Simulator
}
}
// For WCSession
/** Called when the session has completed activation. If session state is WCSessionActivationStateNotActivated there will be an error with more details. */
@available(iOS 9.3, *)
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {}
// Receives data from Watch app
@nonobjc func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {}
func sessionDidBecomeInactive(_ session: WCSession) {}
func sessionDidDeactivate(_ session: WCSession) {
WCSession.default().activate()
}
}
这是错误消息:
我遵循了本教程,但我无法弄清楚问题是什么:
http://kristina.io/watchos-2-how-to-communicate-between-devices-using-watch-connectivity/
最佳答案
更改了我的 ScoreViewController 的 session 定义:
@nonobjc func session(session: WCSession, didReceiveApplicationContext applicationContext: [String : AnyObject]) {}
对此:
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any])
关于ios - 在模拟器上运行时,WatchConnectivity 未在 iOS 端激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45003821/