HeloWCSession Ausgabe mit Xcode 7.3
Bevor Xcode auf die Version 7.3 aktualisieren hatte ich eine App mit einem WatchOS 2 App, die Uhr App die func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
und die iOS-App den Anruf den übergebenen Wert nennen würde würde auswählen und einfügen . Alles war in Ordnung.
Aber da ich bemerkte Xcode 7.3 ein Problem der Aktualisierung, die func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
NUR zweimal aufgerufen wird, wenn der iOS-App zum ersten Mal gestartet wird, wenn die App oder im Hintergrund ausgeführt wird, ist diese Funktion nur einmal aufgerufen.
Wenn ich die Werte 1, 5 und 10 übergebe und die iOS App nicht läuft, werden die Werte 1, 5, 10, 1, 5 und 10 hinzugefügt. Aber wenn die App in irgendeiner Form läuft, werden die Werte 1, 5 und 10 hinzugefügt.
Irgendeine Idee warum?
Hier ist der Code von der WatchOS-Seite, an den ich selbst gedacht habe, aber nach meinen Tests werden sie nur einmal aufgerufen. Ich habe viele Tests gemacht, und das passiert nur, wenn die iOS App gestartet wird, nicht wenn sie im Hintergrund läuft.
@IBAction func ConfirmButtonPressed() {
let applicationDict = ["Amount out": self.AmountText ]// Create a dict of application data
//applicationDict = ["status": "0" ]// Create a dict of application data
WCSession.defaultSession().transferUserInfo(applicationDict)
}
Hier ist der iOS-App-Code aus dem AppDelegate
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if (WCSession.isSupported()) {
print("xyz3")
session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
}
..........
func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
var status = false
var AmountUILabel = ""
status = false
AmountUILabel = userInfo["Amount out"] as! String
print(userInfo["Amount out"] )
let i = NSString (string: AmountUILabel).doubleValue
let when = NSDate()
let list :[AnyObject] = controller.viewControllers!
let j = list[1].topViewController as! AllEntriesTableViewController
j.AddAmount(i , date: when, what: "---", status: status)
}
Können Sie zeigen, was die Watch App sendet? Hat das Wörterbuch 3 Werte und Sie übertragen es zweimal? –