Will the component create by xib be release in viewDidUnload, I think some component create by code in ViewDidLoad will not be release in ViewDidUnload, but it may be recreate when the ViewDidLoad is called by didReceiveMemoryWarning, that may cause it worse
IPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。
app收到Memory Warning后会调用:
UIApplication::didReceiveMemoryWarning -> UIApplicationDelegate::applicationDidReceiveMemoryWarning,然后调用当前所有的viewController进行处理。因此处理的主要工作是在viewController。
我们知道,创建viewcontroller时,执行顺序是loadview -> viewDidLoad。
当收到内存警告时,如果viewcontroller未显示(在后台),会执行didReceiveMemoryWarning -> viewDidUnLoad;如果viewcontroller当前正在显示(在前台),则只执行didReceiveMemoryWarning。
当重新显示该viewController时,执行过viewDidUnLoad的viewcontroller(即原来在后台)会重新调用loadview -> viewDidLoad。
因此主要注意下面几个函数:
loadView | 创建view,构建界面; |
viewDidLoad | 做些初始化工作。由于在初次创建viewcontroller和重新恢复时都会调用,因此这个函数需要注意区分不同的情况,设置正确的状态。 |
didReceiveMemoryWarning | 释放不必须的内存,比如缓存,未显示的view等。 |
viewDidUnLoad | 最大程度的释放可以释放的内存。比如应该释放view,这些view在调用loadview后可以重新生成。(其中成员变量释放后应设置为nil)。对于非界面的数据是否释放,需要具体分析,可以恢复的数据可以释放,不能恢复的数据就不要释放。 |
实际中如果viewcontroller是用xib生成的界面,则需要我们做的就比较少,主要是在viewDidLoad中恢复原来的界面状态。
如果是通过编程创建的界面,则需要做的工作就要更多些,上面4个函数中都需要进行正确处理。
相关推荐
了解TransFlash™ 的引脚定义对于正确使用该模块至关重要。以下是常见的引脚及其功能: 1. **电源引脚**: - Vcc:提供电源电压。 - GND:接地端。 2. **数据传输引脚**: - CMD:命令信号线。 - DAT[0:3]:...
训练过程中,TransE的目标是最小化所有正确三元组的损失,并最大化所有错误三元组的损失,以此来学习合适的实体和关系向量。 C++实现TransE算法通常会包括以下几个关键步骤: 1. **初始化**:随机初始化所有实体和...
TransMac是一款专为Windows用户设计的软件,它允许用户轻松地与Apple的Mac OS系统进行交互,特别是处理与Mac相关的文件格式和磁盘操作。在标题"TransMac11.4免安装版"中,我们可以理解这个版本是11.4的TransMac,...
《TransMac 14.4:Mac OS 镜像刻录的专业利器》 在数字化时代,数据存储和传输的方式多种多样,其中一种常见的格式就是Mac OS的.dmg镜像文件。这种文件类型广泛用于软件分发、系统备份以及跨平台的数据交换。然而,...
TransMac是一款专为Windows用户设计的...总的来说,TransMac是Windows用户不可或缺的工具,特别是在需要处理Mac格式文件或设备时。了解如何有效地使用它,对于在多平台环境下工作的IT专业人员来说,是一项实用的技能。
在非苹果电脑上运行Mac OS通常被称为“黑苹果”项目,这需要特定的软件来处理苹果文件系统的兼容性问题,而TransMac正是这样的一款解决方案。 **标签分析:** "TransMac" 标签明确了我们要讨论的主题,TransMac是...
链接预测中,模型需预测给定头实体和关系后尾实体的正确性;三元组分类则是判断一个给定三元组是否真实存在。常见的评估指标包括Hit@k、MRR(Mean Reciprocal Rank)和MR(Mean Rank)。 五、应用与扩展 TranSE...
在IT领域,尤其是在苹果用户群体中,transMac是一款不可或缺的工具,它允许Windows用户轻松地管理和处理Mac格式的硬盘、USB驱动器以及DMG映像文件。"transMac.zip"这个压缩包文件正是提供了transMac的相关程序和资料...
Trans-Formas可能是一个专门的软件平台,用于处理和可视化复杂的数据流。 在了解"Trans-Formas仪表操作"时,我们需要关注以下几个关键概念: 1. **数据转换**:这是Trans-Formas的核心功能之一,可能涉及到将原始...
总结来说,"Laravel开发-trans"可能是一个专注于改进和扩展Laravel的国际化和本地化功能的项目,特别关注翻译无限制的语言以及正确处理RTL语言的显示。它可能包含了更高级的翻译管理工具、RTL检测优化或增强的翻译...
"fileTrans_filetrans_文件传输_android_"这个标题暗示我们讨论的是一个专门用于Android设备间文件传输的应用或者库。描述中提到的“server模式”和“client模式”是这种传输机制的核心组成部分,它们构成了客户端-...
虽然没有提供具体细节,但可以推断TransMac在处理与Mac相关的文件系统问题上具有显著的功能和可靠性。 **标签解析:** "TransMac" "TransMac"标签进一步确认了讨论的主题,这是一个关键的关键词,表明接下来的内容...
transmac 10.3 注册版,在Win下访问Mac分区并操作的软件 高于这个版本的找不到序列号
在使用TransMac时,用户需要注意正确操作,避免数据丢失。同时,由于涉及到不同操作系统间的文件系统操作,可能需要一定的技术知识。对于新手,建议先了解相关知识,再进行操作,以免误操作导致数据不可逆的损坏。 ...
TransMAC12.2是一个在Windows下写入苹果镜像的软件,一般用于将原版MacOS原版镜像烧录到U盘,安装黑苹果必备,这个最新的12.2破解版,解压后替换主文件即可完成破解
TransMac11破解版 黑苹果安装专用 小白们来下载
总的来说,TransMac是一个强大的跨平台工具,对于需要在Windows系统中处理Mac相关磁盘映像的用户来说,它是一个不可或缺的助手。无论是为了工作还是个人需求,TransMac都能提供便捷的解决方案,实现DMG和ISO文件的...
它的提出,是为了解决多关系数据(multi-relational data)的处理问题。我们现在有很多很多的知识库数据knowledge bases (KBs),比如Freebase、 Google Knowledge Graph 、 GeneOntology等等。 TransE的直观含义,...
TransMac.11.0内附注册,在windows下制作mac的启动盘