Ich habe diese beiden erklärt struct in meinem iOS-App und seine Apple-Uhr-ErweiterungwatchOS nicht nachrichts() eine Struktur
struct nonIndexStruct {
let name: [String]
let message: [String]
}
Ich erstelle ein Objekt wie dieses
let nIS = nonIndexStruct(name: sortedNameArray.map({ ($0).name }), message: sortedNameArray.map({ ($0).name }))
In Um es an meine Apple Watch Extension zu übergeben, legte ich das Objekt in ein dict
let chatsMasterDict:[String: Any] = ["chatsMaster": nIS]
Drucken funktioniert einwandfrei, alle Daten sind in diesem Objekt verfügbar. So senden Sie es, nenne ich
session.sendMessage(chatsMasterDict, replyHandler: nil, errorHandler: nil)
Das Problem ist jetzt, dass nichts auf der Apple-Uhr-Seite ankommt. Der errorHandler druckt nur etwas, wenn die Apple Watch App nicht geöffnet ist. (über die Uhr App nicht geöffnet)
Die Empfangsmethode auf der Apple Watch sieht so aus und es druckt alles, was es empfängt - mit Ausnahme des oben gezeigten Falles wird die Methode einfach nicht aufgerufen.
func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
print("didReceive")
print (message)
if let val = message["chatsMaster"]{
print("chatsMaster came")
. . .
Meine beste Vermutung ist, dass, obwohl die Struktur für beide Systeme zur Verfügung steht, wird die Brücke zwischen nicht „wissen“, und es nicht verarbeiten kann. Wenn die App zu schließen, bekomme ich auch
nicht Wert vom Typ werfen kann '__NSCFString' (0x12e9fe0) auf 'NSArray' (0x12ea670). 2017-09-06 12: 23: 24.237016 + 0200 APPNAME WatchKit-Erweiterung [20802: 3718623] Konnte den Wert des Typs '__NSCFString' (0x12e9fe0) nicht in 'NSArray' (0x12ea670) umwandeln.
Aber wieder passiert das nur, wenn ich den Prozess so IDK stoppe, ob das zu meinem Problem gehört.
EDIT: Apple Watch Dokumentation sagt
Die Schlüssel und Werte Ihres Wörterbuch alle Typen Eigenschaftsliste sein muss, da die Daten serialisiert werden müssen und drahtlos gesendet.
also das ist wahrscheinlich, warum es nicht funktioniert. Was ist die beste Problemumgehung? Making it Data
wäre ein bisschen Overkill ich denke, wie der Inhalt meiner Struktur ist ziemlich einfach:/
Perfekte Lösung, genau was ich brauchte! Du hast die Klammern hinter dem Rückgabetyp vergessen, aber das ist perfekt, vielen Dank! – user2875404
Ich bin froh, dass ich helfen konnte.Danke für die Korrektur, ich habe meine Antwort mit den Klammern aktualisiert. –