- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几个 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/
我是一名优秀的程序员,十分优秀!