gpt4 book ai didi

ios - Xcode 7.3 的 WCSession 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:06 25 4
gpt4 key购买 nike

你好

在将 Xcode 更新到 7.3 版本之前,我有一个带有 WatchOS 2 应用程序的应用程序, watch 应用程序将调用 func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
并且 iOS 应用程序将接听电话并插入传递的值。一切都很好。

但是自从更新到 Xcode 7.3 后我注意到一个问题,func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
被调用两次 ONLY 当 iOS 应用程序首次启动时,如果应用程序正在运行或处于后台,则该函数仅被调用一次。

如果我传递值 1、5 和 10 而 iOS 应用程序未运行,则会添加值 1、5、10、1、5 和 10。但是,如果应用程序以任何形式运行,则会添加值 1、5 和 10。

知道为什么吗?

这是 WatchOS 端的代码,我确实自己想到了,但根据我的测试,它们只被调用了一次。我做了很多测试,这只发生在 iOS 应用程序启动时,而不是在它在后台执行时。

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

这是来自应用委托(delegate)的 iOS 应用代码

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

最佳答案

经过一整天的研究,我找到了答案。我应该用 dispatch_async

启动 didReceiveUserInfo

这解决了问题并提高了 watch 应用程序和 iOS 应用程序之间的通信速度。

func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
dispatch_async(dispatch_get_main_queue()) {

关于ios - Xcode 7.3 的 WCSession 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36213857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com