ios nslog 例子_详解IOS开发学习笔记案例分析

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中打印了

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

在AppDelegateDidFinishLaunching中做如下处理:

NSLog(@"before 1");

{

static MyClass *m=nil;

m= [[MyClass alloc] init];// m没有被销毁,所指向对象也没有被销毁

}

NSLog(@"after 1");

NSLog(@"before 2");

{

MyClass *m=nil;

m= [[MyClass alloc] init];   // m被销毁,对象同时也被销毁。

}

打印结果:

2011-07-10 00:59:44.556 aaaaa[4965:207] before

2011-07-10 00:59:44.558 aaaaa[4965:207] after

2011-07-10 00:59:44.558 aaaaa[4965:207] before

2011-07-10 00:59:44.558 aaaaa[4965:207] -[MyClass dealloc] 25

2011-07-10 00:59:44.559 aaaaa[4965:207] after

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

【编辑推荐】

【责任编辑:李程站 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值