gpt4 book ai didi

ios - 如何在不影响内存管理的情况下从 AppDelegate 访问对象?

转载 作者:行者123 更新时间:2023-11-28 22:12:55 25 4
gpt4 key购买 nike

我有几个 View Controller 对象,每个对象都可以从 UITextField 接收一些用户输入,将输入保存到可变数组并显示在 UITableView 中。

我还希望在用户按下主页按钮时将这些可变数组保存在文件中,因此我在 AppDelegate.m 中找到了以下代码:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

似乎这种方法非常适合在用户按下主页按钮时保存用户数据,但我的问题是如何访问在不同 View Controller 中声明的这些可变数组,以便将它们保存到文件中?我当然可以在 AppDelegate 中创建指针并使它们指向每个 View Controller 对象,但我知道当程序内存不足时可以卸载 View ;因此,如果我在 AppDelegate 中创建这些指针,那么当内存不足时(由于强引用),这些 View 对象永远不会被卸载。我应该怎么办?谢谢!

最佳答案

用户界面的一般设计模式是 Model View Controller 。数据存储(“模型”)保存在 View Controller 的单独对象中。

例如,您可以创建一个存储所有应用程序数据的对象,在 AppDelegate didFinishLaunchingWithOptions: 方法中实例化它,并将引用存储在 AppDelegate 的属性中。然后每个 View Controller 都可以使用 [UIApplication sharedApplication].delegate.myData 来检索引用。

关于ios - 如何在不影响内存管理的情况下从 AppDelegate 访问对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22467361/

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