gpt4 book ai didi

android - 在 iOS 中管理核心对象

转载 作者:可可西里 更新时间:2023-11-01 05:46:10 25 4
gpt4 key购买 nike

我的任务是在 iOS 上移植 Android 应用程序。不幸的是,我以前从未编写过 iOS 应用程序,所以我有一些基本问题。

在 Android 中,我们编写的应用维护了几个不同的核心对象,我们在扩展 android.app.Application 的类中经常使用这些对象。当我们需要访问这些对象时,我们会调用 getApplication();在这个类中,我们存储了两个自定义对象字典、一个 ArrayList 和一些 bool 值、整数和字符串。

谁能告诉我在 iOS 中执行此操作的正确方法?我查看了一个包含所有字典、数组列表和其他数据的单例类,但我读到这个单例将在应用程序运行的整个过程中存在于内存中。在 Android 中,Application 类有时会在一段时间不活动后被垃圾回收,因此我们不得不重新加载它。如果在 iOS 中,这个单例类在应用程序的整个生命周期中都存在于内存中,我是否应该担心使用太多内存?我是否应该序列化这些对象并将它们存储在磁盘上,在需要时重新创建它们?

最佳答案

android.app.Application 听起来类似于 iOS 的 App Delegate (UIApplicationDelegate)。当应用程序的状态发生变化时,App Delegate 中的某些方法会被调用,请查看以下方法:

- (void)applicationWillTerminate:(UIApplication *)application;
- (void)applicationDidEnterBackground:(UIApplication *)application;

第一个将在应用程序不在后台并且即将关闭时调用(请参阅 Tommy 的评论),如果它进入后台则调用后者。如果有更改,我建议每次应用程序进入后台时将数据序列化到永久存储。

稍后,您可以通过调用 [[UIApplication sharedApplication] delegate] 并将结果转换为您的自定义子类来获取对自定义 App Delegate 的引用。我还建议不要将数据直接存储在 App Delegate 中,而是存储在委托(delegate)引用的模型对象中(它应该有助于使事情更清晰,并为您提供更多灵 active )。

关于android - 在 iOS 中管理核心对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12903585/

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