详解IOS开发学习笔记案例分析

移动开发 iOS
IOS开发学习笔记案例分析是本文要介绍的内容,主要讲解ViewDidUnload使用方法和iOS 5的内存管理例子的内容,来看详细内容。

IOS开发学习笔记案例分析是本文要介绍的内容,主要讲解ViewDidUnload使用方法和iOS 5的内存管理例子的内容,来看详细内容。

ViewDidUnload使用方法

当系统内存吃紧的时候会调用该方法(注:viewController没有被dealloc)

内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的***方式,但是OS 3.0及以后viewDidUnload方法是更好的方式

在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release view时已经将其release掉了)

在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、以及在viewDidLoad中被创建的对象

release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)

一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行

viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象

iOS 5的内存管理例子
 
iOS5中使用了Objective-C Automatic Reference Counting 自动引用计数机制,在编程中不需要我们主动retain/release/autorelease一个对象了。

MyClass的dealloc中打印了

  1. NSLog(@"%s %d", __FUNCTION__, __LINE__); 

在AppDelegateDidFinishLaunching中做如下处理:

  1. NSLog(@"before 1");  
  2. {  
  3.     static MyClass *m = nil;  
  4.       
  5.     m = [[MyClass alloc] init];  // m没有被销毁,所指向对象也没有被销毁  
  6. }  
  7. NSLog(@"after 1");  
  8. NSLog(@"before 2");  
  9. {  
  10.     MyClass *m = nil;  
  11.     m = [[MyClass alloc] init];   // m被销毁,对象同时也被销毁。  

打印结果:

  1. 2011-07-10 00:59:44.556 aaaaa[4965:207] before   
  2. 2011-07-10 00:59:44.558 aaaaa[4965:207] after   
  3. 2011-07-10 00:59:44.558 aaaaa[4965:207] before   
  4. 2011-07-10 00:59:44.558 aaaaa[4965:207] -[MyClass dealloc] 25  
  5. 2011-07-10 00:59:44.559 aaaaa[4965:207] after  

小结:IOS开发学习笔记案例分析的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-17 14:30:34

iOS开发窗口

2011-08-22 15:43:08

IOS开发数据库

2011-08-19 11:10:31

iPhone应用

2011-08-10 14:00:22

XcodeUIWebView视频

2013-03-25 13:41:10

iOS5ARC内存管理

2013-09-12 12:55:53

iOS开发

2024-02-21 08:00:00

机器学习Java大语言模型

2023-03-06 16:24:38

Web组件H5小程序

2011-08-03 09:44:18

IOS开发 UITextFiel UITableVie

2009-11-09 09:55:24

WCF学习笔记

2011-09-05 16:47:49

jQuery Mobi

2010-06-03 11:12:55

Hadoop

2012-05-14 16:59:40

iOS

2013-03-28 09:45:34

iOS学习笔记总结整理

2011-08-02 11:07:42

iOS开发 UIWebView

2011-08-09 16:08:58

IOS游戏Cocos2d

2010-08-26 16:40:35

DIV定位

2011-07-08 18:28:43

iOS 接口

2010-06-29 13:22:26

UML类图

2010-09-14 16:20:19

DIV定位
点赞
收藏

51CTO技术栈公众号