gpt4 book ai didi

swift - 在主应用程序发布的 Today Widget 中观察通知

转载 作者:行者123 更新时间:2023-11-28 15:21:06 24 4
gpt4 key购买 nike

我在一个 swift 文件中声明了通知名称,该文件具有主应用程序和今日小部件的目标成员资格:

let SpecialKey = Notification.Name("howLongNotif")

然后在我的主应用 View Controller 中,我在位置更新时发布通知(位置更新的后台模式打开):

NotificationCenter.default.post(name: SpecialKey, object: nil, userInfo: nil)

在我今天的小部件 viewDidLoad 中,我是这样观察它的:

NotificationCenter.default.addObserver(self, selector: #selector(TodayViewController.dataReceived), name: SpecialKey, object: nil)

并且有:

func dataReceived(_notification: NSNotification) {
print("data received")
}

但是 dataReceived 函数永远不会被调用。

我通过将观察者和 dataReceived 函数移动到主应用程序进行了测试,它在那里工作正常。

最佳答案

您的主应用程序和今天的扩展程序在手机上作为单独的进程运行。 NSNotificationCenter 只能在单个进程中工作。

要在您的扩展程序和主应用程序之间传递信息,您可以使用 NSUserDefaults 或共享容器中的文件。

关于swift - 在主应用程序发布的 Today Widget 中观察通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45986695/

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