Das Folgende ist eine Testmethode zwischen den watchOS und iOS Komponenten meiner App für die Kommunikation:senden Array von NSManagedObject zu watchOS in nachrichts: Antwort-Handler
- (void)session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message replyHandler:(void (^)(NSDictionary<NSString *,id> * _Nonnull))replyHandler {
NSArray *responseArray = @[@"hello", "world"];
NSDictionary *responseDict = @{@"response": responseArray};
replyHandler(response);
}
Das funktioniert perfekt - in der Antwort-Handler auf der Uhr Ich kann den Inhalt von responseDict protokollieren und sehe die Objekte @"hello"
und @"world"
. Wenn ich jedoch responseArray so ändere, dass NSManagedObject-Instanzen enthalten sind (um aktuelle Daten an die Überwachung zu senden), wird der sendMessage-Fehlerhandler mit dem Fehler Payload could not be delivered
ausgelöst. Bevor ich meine Datenbankstruktur ändere, um eine UUID für die Entitäten zu enthalten, die ich senden muss (damit ich sie durch ihre UUID im NSString-Format darstellen kann), wollte ich nur überprüfen: Ist es tatsächlich möglich, NSManagedObject-Instanzen an watchOS zu senden?
Danke, das war sehr hilfreich. Ich werde den Entitäten, die für die Überwachung freigegeben werden müssen, ein UUID-Attribut hinzufügen, damit ihre Daten in NSDictionaries gespeichert und dann an die Überwachung gesendet und mit den Entitäten abgeglichen werden können, wenn sie von der Überwachung zurückgesendet werden. – mashers