gpt4 book ai didi

ios - 当数据改变时如何调用函数?

转载 作者:行者123 更新时间:2023-11-30 12:11:08 26 4
gpt4 key购买 nike

我在 main.swift 中有表格 View 如果

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

被调用(在appdelegate中)我的数据库获取新数据。

但是我的 View 没有改变,因为我没有调用tableview.reloadData

所以我的问题是如何在

之后调用 tableview.reloadData
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

打电话了。(我尝试了 Main().myreload (//自定义函数),但它显示 fatal error ..)

最佳答案

当数据库重新加载时,您会收到 application(_:open:options:) 调用,这似乎很奇怪。当外部应用程序告诉您的应用程序打开 URL 时,将调用该函数。

如果确实如此,您需要一种方法来从您的应用程序委托(delegate)向任何关心的人发送消息。我建议定义并使用 NotificationCenter 消息。让包含 TableView 的 View Controller 调用 addObserver(forName:object:queue:using:) (或 addObserver(_:selector:name:object:),但是第一种风格更像 Swift。)

然后在您的 application(_:open:options:) 方法中,使用 `post(name:object:userInfo:) 或其变体之一,在 URL 打开方法为已调用。

(一般来说,应用程序委托(delegate)中应包含尽可能少的特定于应用程序的业务逻辑。通过使用 NotificationCenter,您可以编写应用程序委托(delegate),以便它不知道或关心哪个 View Controller 需要收到关于传入的“打开 URL”命令的通知。)

关于ios - 当数据改变时如何调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46044436/

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