2015-09-20 10 views
12

Próbowałem wysłać go metodą FileTransfer:Jak korzystać z coredata z iPhone'a w AppleWatch OS2?

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

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

ale dostaję błąd:

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.})

Czy masz jakiś pomysł, jak synchronizować CoreData między iPhone i WatchOS2?

+0

Jaka jest wartość modeluURL w tym przypadku? Plik – ccjensen

+0

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

+0

Zobacz http://stackoverflow.com/questions/30834078/using-core- data-with-watchos-2-0 –

Odpowiedz

0

To jest chyba to, czego szukasz: Watch Connectivity Framework

więcej tutaj: https://developer.apple.com/library/prerelease/ios/documentation/WatchConnectivity/Reference/WatchConnectivity_framework/index.html

I tu: https://forums.developer.apple.com/thread/3927

Cytowanie od 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

Jak widać w moim kodzie używam mechanizmu Watch Connectivity Framework. Moje pytanie jest inne, w jaki sposób korzystać z tej platformy do przekazywania podstawowych danych do AppleWatch –

+0

. Wystarczy zweryfikować, czy robisz to od strony telefonu czy zegarka? –

+0

Chciałbym przenieść plik z telefonu na zegarek –

5

Próbujesz wysłać cały katalog "momd". Plik przeniesienie API WatchConnectivity nie wydaje się wspierać przenoszenia katalogów, a zatem jest zwrócenie błędu w, Polska ks: didFinishFileTransfer: error:

Aby rozwiązać ten problem, masz kilka opcji:

  1. serializacji katalog momd w jeden plik, a następnie deserializacja po stronie odbiorczej (za pomocą czegoś podobnego do zip, itp.).
  2. Utwórz format przesyłania, aby przenieść określone informacje z bazy danych.
    • Projekt wyciągnie określony element z bazy danych i prześle go. Strona odbierająca następnie dodaje ten fragment treści do swojej własnej bazy danych. Prawdopodobnie używałbyś API transferUserInfo z tym rozwiązaniem.

Rozwiązanie numer 2 jest prawdopodobnie jednym z najlepszych, ponieważ pozwala wysłać tylko zmiany, które zostały dokonane, a nie całej bazy danych za każdym razem zmiana jest dokonywana, ale będzie więcej pracy.