`

IOS开发内存释放小结

    博客分类:
  • IOS
 
阅读更多
内存释放是iphone开发过程中比较重的地方,所以在开辟内存后,我们必须小心、谨慎、并且及时的释放掉。
内存的释放,可以调用Dealloc函数,该函数可以释放,该类对象所占用的内存空间,为iphone节省宝贵的内存资源。
那么Dealloc函数是什么时候释放的哪?
测试代码如下:
我们先创建一个类:test_1,修改他的Dealloc函数
- (void)dealloc
{
  NSLog(@"this is test_1 view did dealloc !");//输出内容,表示调用该函数,并释放资源
[super dealloc];
}
我们在另一个地方创建他
test_1 *m_text;
if (m_text==nil)
{
  m_text = [[test_1 alloc] initWithNibName:nil bundle:nil];
}
int a = [m_text retainCount];//a = 1
[m_text retain];
int b = [m_text retainCount];//b = 2
[m_text release];
int c = [m_text retainCount];//c = 1
[m_text release];
int d= [m_text retainCount];//d = 1
m_text = nil;
int e= [m_text retainCount];//e = 0

经过测试发现,其实int d= [m_text retainCount];//d = 1该行代码中 d的理论之应该=0,表示该对象已经为空,其所占用的内存资源已经得到释放, 也就是执行到改行代码后,调用了函数
- (void)dealloc
{
  NSLog(@"this is test_1 view did dealloc !");//输出内容,表示调用该函数,并释放资源
[super dealloc];
}
输出:
2011-10-25 16:05:13.333 Untitled[6358:207] test view did dealloc !
表示,对象m_text所占据的内存空间已经完全得到释放。
通过测试我们也发现,当一个对象的RetainCount函数=0的时候,系统会马上调用Dealloc函数释放该资源。

要想完全释放一个对象,的参考代码:
[m_text release];
m_text = nil;


THE END !
分享到:
评论

相关推荐

    iOS开发之枚举用法小结

    大家都知道枚举是C语言中的一种基本数据类型,是一个"被命名的整型常量"的集合,它不参与内存的占用和释放,我们在开发中使用枚举的目的只有一个,那就是为了增加代码的可读性。下面就来来看看在iOS中枚举的用法,有需要...

    IOS 常见的循环引用总结

    IOS 常见的循环引用总结 介绍: 循环引用,指的是多个对象相互引用时,使得引用形成一个环形,导致外部无法真正是否掉这块环形内存。其实有点类似死锁。 举个例子:A->B->C->….->X->B ->表示强引用,这样的B的引用...

    Cocos2D-X游戏开发技术精解

    2.2.3 iOS开发环境 35 2.3 引擎中的混合编译 38 2.3.1 Java与C++的混合编译 38 2.3.2 Objective-C与C++的混合编译 41 2.4 引擎的启点 42 2.4.1 应用程序入口 43 2.4.2 引擎应用入口 44 2.5 丰富的示例程序 46 2.5.1 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的应用十分广泛 Webview WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页 Activity ...

    白帽子讲浏览器安全.钱文祥(带详细书签).pdf

    1.8 本章小结 12 2 浏览器中常见的安全概念 13 2.1 URL 13 2.1.1 URL的标准形式 15 2.1.2 IRI 16 2.1.3 URL的“可视化”问题——字形欺骗钓鱼攻击 18 2.1.4 国际化域名字形欺骗攻击 19 2.1.5 自纠错与Unicode...

    Android学习系列教程实例.pdf

    Android 学习文档总结 ................... 1 DevDiv 推荐资源 ........................ 2 Windows 8 ........................................................... 2 iOS .........................................

Global site tag (gtag.js) - Google Analytics