gpt4 book ai didi

ios - 页面加载后 NSNotification 发送的数据为空白

转载 作者:行者123 更新时间:2023-11-29 01:35:52 26 4
gpt4 key购买 nike

我正在通过 NSNotification 从 ViewController 1 向 ViewController 3 以及从 ViewController 2 向 ViewController 3 发送数据。

NSNotificationCenter.defaultCenter().postNotificationName("retirementChange", object: retirementText?.text)

当我将 NSNotification 中的数据设置为 ViewController 3 中的变量时,我打印了 ViewController 3 中的数据。我将变量 age 设置为通知对象。

NSNotificationCenter.defaultCenter().addObserver(self, selector: "setRetirementAge:", name: "retirementChange", object: nil)

func setRetirementAge(notification: NSNotification){
age = notification.object!
print(age)
}

当时它在控制台中打印正常,但是当我尝试在页面加载后使用值 age 时,它​​是空白的。

任何帮助将不胜感激。谢谢

最佳答案

您应该考虑问题的评论中提到的内容,也许不使用 NSNotification 而是以有序的方式将数据传递给 Controller ​​。通知实际上是为了在其他地方发生变化时通知屏幕上的 Controller ,通常是在后台线程上。正确的方法是在 View Controller 出现之前设置要显示的正确数据。它应该由一些可用的数据模型设置,或者通过呈现 View Controller 在常用方法中设置的变量,例如 prepareForSegue

话虽如此,从您的代码看来,您在发送通知时误解了 object 参数。 object 只是限制了通知的范围。如果你想传递数据,你必须创建一个新的 NSNotification 并包含一个 userInfo 字典,其中包含你希望接收方获取的任何数据。

let notif = NSNotification(name: "retirementChange", object: nil, userInfo: ["age": 42])
NSNotificationCenter.defaultCenter().postNotification(notif)

关于ios - 页面加载后 NSNotification 发送的数据为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32980735/

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