我的任务是在iOS上移植Android应用程序.不幸的是,我之前从未编写过iOS应用程序,所以我有一些基本问题.
在AndroID中,我们编写的应用程序维护了一些我们经常在扩展androID.app.Application的类中使用的不同核心对象.当我们需要访问这些对象时,我们将调用getApplication();在这个类中,我们存储了两个自定义对象的字典,一个ArrayList,以及一些布尔值,整数和字符串.
任何人都可以告诉我在iOS中执行此 *** 作的正确方法吗?我查看了一个包含所有词典,arrayLists和其他数据的单例类,但我读到这个单例将在应用程序运行的整个时间内存在于内存中.在AndroID中,Application类有时会在一段时间不活动后被垃圾收集,所以我们不得不重新加载它.如果在iOS中,这个单例类在应用程序的整个生命周期中都存在于内存中,我是否应该担心使用太多内存?我应该序列化这些对象并将它们存储在磁盘上,在需要时重新创建它们吗?
解决方法:
androID.app.Application听起来类似于iOS的App Delegate(UIApplicationDelegate).当应用程序的状态发生变化时,App Delegate中的某些方法会被调用,请查看以下方法:
- (voID)applicationWillTerminate:(UIApplication *)application;- (voID)applicationDIDEnterBackground:(UIApplication *)application;
第一个将在应用程序不在后台并且即将关闭时调用(请参阅Tommy的注释),后者如果它将进入后台.我建议每次应用程序进入后台时将数据序列化为永久存储,如果有变化的话.
稍后,您可以通过调用[[UIApplication sharedApplication]委托]并将结果转换为自定义子类来获取对自定义App Delegate的引用.我还建议不要将数据直接存储在App Delegate中,而是存放在委托有引用的模型对象中(它应该有助于使事情更清晰,并为您提供更多的灵活性).
总结以上是内存溢出为你收集整理的android – 在iOS中管理核心对象全部内容,希望文章能够帮你解决android – 在iOS中管理核心对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)