Capisco che in realtà desideri uno scenario di test.
Ma quale direzione di comunicazione vuoi testare? Se si controlla la documentazione di WCSession
, viene sempre indicato il comportamento per l'orologio e il dispositivo iOS.
Inoltre, cosa intendi con "disconnesso"?
È possibile verificare la WCSession.defaultSession().reachable
ma documentazione afferma
Su iOS, il valore è YES quando l'Apple Osservare abbinato è in campo e Watch applicazione associata è in esecuzione in primo piano.
È possibile verificare per paired
, ma è anche necessario verificare per watchAppInstalled
.
Credo che tutta la comunicazione sia asincrona. Vuoi controllare il codice errorHandler:
come in
- (void)sendMessageData:(NSData *)data
replyHandler:(void (^)(NSData *replyMessageData))replyHandler
errorHandler:(void (^)(NSError *error))errorHandler
penso che non è possibile testarlo su un simulatore. È possibile copiare temporaneamente il codice errorHandler per rispondere aHandler per il test.
ecco il codice che uso per testare la disponibilità:
if WCSession.isSupported() {
let session = WCSession.defaultSession()
session.delegate = _modelController
session.activateSession()
_modelController!.transferArrayToWatchWithSession()
}
e all'interno della _modelController
func transferArrayToWatchWithSession() {
let session = WCSession.defaultSession()
if WCSession.isSupported() && session.watchAppInstalled {
session.transferUserInfo([kWatchControlsDictKey:self.verifiedWatchArray])
} else {
log.info(....")
}
}
Buona idea! Sono davvero in grado di inviare i dati a iPhone dopo aver lasciato il simulatore. Tuttavia, 'session.reachable' è ancora' true' sull'orologio e l'errore che ottengo in 'errorHandler' di' sendMessage (...) 'è' Code = 7001 "Errore di WatchConnectivity sconosciuto." 'W/il sottostante errore essendo 'Code = 23" Time out "'. È questo ciò che si ottiene quando l'iPhone non è raggiungibile? – fabian789
Questo è un possibile errore, ma solo se si colpisce una gara abbastanza piccola. L'altro più probabile è l'errore non raggiungibile (credo 7007). – ccjensen
Ok. Secondo 'WCError.h', è effettivamente 7007. Ma di solito,' session.reachable' sarebbe 'false' quando l'iPhone si disconnette? – fabian789