2015-09-20 10 views
12

Ho provato inviarlo con il metodo di trasferimento file:Come utilizzare il coredata da iPhone su AppleWatch OS2?

let modelURL = NSBundle.mainBundle().URLForResource("my_app", withExtension: "momd")! 

WCSession.defaultSession().transferFile(modelURL, metadata:nil) 

ma ottengo l'errore:

Optional(Error Domain=WCErrorDomain Code=7008 "Invalid parameter passed to WatchConnectivity API." UserInfo={NSLocalizedDescription=Invalid parameter passed to WatchConnectivity API., NSLocalizedRecoverySuggestion=Only pass parameters of correct type.})

Avete qualche idea di come sincronizzare CoreData tra iPhone e WatchOS2?

+0

Qual è il valore di modelURL in questo caso? – ccjensen

+0

file: ///var/mobile/Containers/Bundle/Application/0E848152-553B-48C3-A8A4-DB7FE15D4BD5/my_app.momd/ –

+0

dai un'occhiata http://stackoverflow.com/questions/30834078/using-core- data-with-watchos-2-0 –

risposta

0

questo è probabilmente quello che stai cercando: Watch Connectivity Framework

più qui: https://developer.apple.com/library/prerelease/ios/documentation/WatchConnectivity/Reference/WatchConnectivity_framework/index.html

E qui: https://forums.developer.apple.com/thread/3927

Citando dal forums.developer.apple.com

Watch apps that shared data with their iOS apps using a shared group container must be redesigned to handle data differently. In watchOS 2, each process must manage its own copy of any shared data in the local container directory. For data that is actually shared and updated by both apps, this requires using the Watch Connectivity framework to move that data between them.

+0

Come potete vedere nel mio codice, utilizzo Watch Connectivity Framework. La mia domanda è diversa su come utilizzare questo framework per passare i dati principali a AppleWatch –

+0

Solo per verificare, lo stai eseguendo dal lato telefono o dal lato dell'orologio? –

+0

Vorrei trasferire il file dal telefono per guardare –

5

Si sta tentando di inviare l'intera directory "momd". Il trasferimento di file API di WatchConnectivity non sembra supportare il trasferimento di directory, ed è pertanto restituisce un errore nel -session: didFinishFileTransfer: errore:

Per risolvere il problema di avere un paio di opzioni:

  1. Serialize la directory momd in un singolo file e quindi deserializzare sul lato ricevente (utilizzando qualcosa come zip, ecc.)
  2. Creare un formato di trasferimento per il trasferimento di informazioni specifiche dal database.
    • Il progetto estrae un pezzo specifico dal database e lo invia attraverso. La parte ricevente quindi aggiungere quel pezzo di contenuto al proprio database. Probabilmente useresti l'API transferUserInfo con questa soluzione.

Soluzione numero 2 è probabilmente il migliore in quanto consente di inviare solo le modifiche che sono state fatte anziché l'intero database ogni volta che viene apportata una modifica, ma sarà più lavoro.

Problemi correlati