惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
S
Secure Thoughts
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
宝玉的分享
宝玉的分享
J
Java Code Geeks
博客园 - 司徒正美
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
S
SegmentFault 最新的问题
博客园 - 聂微东
Jina AI
Jina AI
C
CERT Recently Published Vulnerability Notes
Application and Cybersecurity Blog
Application and Cybersecurity Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
PCI Perspectives
PCI Perspectives
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
P
Proofpoint News Feed
Stack Overflow Blog
Stack Overflow Blog
I
Intezer
P
Privacy & Cybersecurity Law Blog
小众软件
小众软件
I
InfoQ
S
Security Affairs
B
Blog RSS Feed
L
Lohrmann on Cybersecurity
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Help Net Security
T
Tailwind CSS Blog
C
Check Point Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
C
Cybersecurity and Infrastructure Security Agency CISA
Recorded Future
Recorded Future
Martin Fowler
Martin Fowler
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
Blog — PlanetScale
Blog — PlanetScale
Cisco Talos Blog
Cisco Talos Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com

博客园 - Bruce Lee

Android的界面设计规范-7 Android的界面设计规范-6 Android的界面设计规范-5 Android的界面设计规范-4 Android的界面设计规范-3 Android的界面设计规范-2 Android的界面设计规范-1 Monotouch 移动位于键盘下的内容,自动滚动被键盘遮住的内容 RESTful Web Services,客户端Silverlight提交POST数据报错 Monotouch Copy item from album(从相册拷贝文件出来) Monotouch Save Image To Application(保存相册图片到你的应用程序) Monotouch中使用UINavigationController Monotouch 项目选择Storyborads还是XIBs Montouch 定义一个定制的 View Control类 Montouch多视图的创建与销毁 Monotouch 常用例子代码 Monotouch在IPAD与IPhone使用UIImagePickerController的图片选择不同的代码 Montouch 增加图片到模拟器(Simulator)的相册中 Monotouch Table View 里面动态增加Table View Cell Switch 触发Switch事件 程序崩溃
Monotouch 视图管理周期
Bruce Lee · 2012-10-01 · via 博客园 - Bruce Lee

在视图控制器对象,相应的视图中出现两个明显的周期管理:加载和卸载周期。

每当应用程序的某些部分要求查看控制器的视图对象的指针时,并且该对象在内存中当前没有,加载周期发生。视图控制器加载视图到内存并将其存储为指针,以供将来引用。

如果您的应用程序在将来的某个时刻接收内存不足警告,视图控制器可能随后尝试卸载该视图。 在卸载周期,视图控制器尝试释放自己的视图对象并且视图控制器返回到其初始不可见状态。 如果它能够释放视图,视图控制器就没有一个残留的视图对象,直到再次请求,此时加载周期的再次开始。
在加载和卸载周期期间,大部分加载和卸载工作是由视图控制器完成。 但是,如果您的视图控制器类存储了一些视图层次的引用或者在视图加载的时候需要执行一些额外的配置,您可以重写特定方法来执行任何额外任务。
加载周期期间发生的步骤如下:

1。 一些应用程序要求使用控制器中的视图属性。

2。 如果要使用的视图引用当前在内存中,视图控制器调用loadView方法。

3。loadView方法执行下列操作之一:

          如果你重写此方法,您的实现负责创建所有必需的视图属性并分配non-nil值。

          如果你不重写此方法,默认的实现使用视图控制器的xibName和xibBundle属性尝试从指定的nib文件加载视图。如果指定的xib文件没有找到,视图控制会找与视图控制器类的名称匹配的xib文件来加载。

          如果没有可用的xib文件,该方法创建一个空的UIView对象并将其分配给视图控制器的视图属性。

4。然后视图控制器调用viewDidLoad方法执行任何加载时需要做的其他任务。
下图是加载视图到内存

$_G1RFC35%L_)PFY]]M@LG5

在卸载周期发生步骤如下: 、

1。应用程序从系统中接收到内存不足的警告。

2。每个视图控制器调用didReceiveMemoryWarning方法:

          如果你重写此方法,您应该使用它来释放视图控制器的任何不再需要的自定义数据对象。 你不应该使用它来释放视图控制器的视图对象。 为了实现执行默认行为有时必须调用super方法。

          如果确定释放视图对象是安全的,那么缺省的实现也可以释放视图对象。

3。视图控制器调用viewDidUnload方法释放其视图。 您可以重写此方法来执行顺序的释放视图结构以及所需的任何额外的清理。
从内存卸载视图

}MGUE0[{TO7$APZX(S4J(8U

注意:在IOS3.0和以后,viewDidUnload方法是放任何相关的清理视图代码的首选地方。 你也有可能重写didReceiveMemoryWarning方法,在释放视图时释放临时缓存或其它私有的不再需要的数据。 如果你确实重写 didReceiveMemoryWarning,总是要调用supper方法给继承版本的方法一个释放视图的机会。ios2.2及更早版本中,必须使用didReceiveMemoryWarning方法来执行视图的相关清理和释放任何不需要的私有数据。viewDidUnload方法只有在ios3.0及更高版本是可用的。

作者:Bruce Lee
出处:http://www.cnblogs.com/BruceLee521
本博原创文章版权归博客园和本人共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出作者名称和原文连接,否则保留追究法律责任的权利。