原文地址:http://www.flyblog.info/catprogramming/168.html
Objective-C2.0 号称可以支持Garbage Collection了, 也就是垃圾回收, 但是我还没在xcode以及文档中找到相关的用法,也懒得去查了。 关于garbage collection的内容也没啥可说的, 想说说这几天遇到的无GC情况下的几个内存相关问题。
Objective-C的autorelease确实给开发省了不少事情提高了开发效率, 这对于Mac OSX桌面开发没问题,因为内存大不存在内存紧张的局面。但是如果要为iPhone开发程序, 还是慎用 autorelease的好, 否则只好等程序退出时再清理内存了。 在iphone上最好不要保存不必要的对象, 使用的时候在创建,比如图片、文件等等。 还有一点要注意的就是UITableView, 如果你是把UITableView放在UITableViewCOntroller中,那么别担心,没有什么问题,如果你是在UIViewController或者其子类里放置UITableView,那么注意了, 在Pop掉 viewcontroller的时候一定记得先把UItableView的delegate设置为空, 也就是 [tableView setDelegate:nil] ,之所以这样做, 是因为tableView的delegate是个retain,会保存对象, 所以如果你不在pop之前将delegate设为nil, 将不会调用view controller的dealloc,内存也就无法释放, 这么来几下恐怕就要内存吃紧了。
总结了几条内存使用经验
1. 对象现用现创建
2. 所有用alloc,new , retain等创建的对象都需要调用release去释放, 千万别发送release消息给autorelease对象, 否则只能over了
3. 注意delegate,如果时retain类型,最好在释放之前将之设为nil
4. 在频繁使用alloc的地方(循环) 创建自己的NSAutoReleasePool
5. 对于UIImage对象慎用 [UIImage imageNamed:], 使用[UIImage imageWithContentOfFile:] 或者[image initWithContentOfFile:]
上面几条是在iPhone开发上使用内存的小技巧, 都是我亲身试验过的,走了不少弯路。。。
分享到:
相关推荐
给大家推荐一下,上面有斯坦福大学iphone开发视频教程中英文字幕版1-6集,还有超过100本的iphone开发方面的电子书可下载(速度很快哦!)。 更新:如果大家在学习和工作中遇到什么问题,请给我留言,大家...
ios iphone开发-内存管理 所有权是iPhone内存管理的核心思想,对象的所有者负责在使用完对象后进行释放。一个对象可以有多个所有者,当它没有所有者时将被设置为取消分配(deallocation)
在IT行业中,iPhone应用开发是一项热门且高需求的技能,特别是在全球范围内苹果设备用户的不断增长。本资源包“iphone 开发中文资料”专注于为初学者提供一个xcode开发的入门指南,通过“BecomeAnXcoder(SChinese)[1...
### iPhone开发教程之iPhone内存释放注意事项两则 #### 内存管理基础知识 在iOS开发过程中,内存管理是一项非常重要的任务。对于iOS应用来说,如果内存管理不当,可能会导致程序崩溃或者被系统强制关闭。在...
内容中提到的网址是一个资源链接,可能指向更多关于iPhone开发的相关文档或资源,这可能包括苹果的官方开发者网站和开发工具下载链接。通过这个链接,开发者可以下载各种开发工具,包括SDK(软件开发工具包)、API...
《深入浅出iPhone开发》是一本专为iPhone应用程序开发初学者编写的指南,旨在通过实际应用案例,系统地介绍iOS开发的各项技术。本书的核心目标是让读者能够从零基础逐步掌握开发iPhone应用所需的知识和技能。 在iOS...
《iPhone开发基础教程-PDF版》是一份专为初学者设计的全面指南,旨在帮助读者掌握iOS应用开发的基础知识和技能。本教程涵盖了从安装开发环境到创建第一个应用的全过程,深入浅出地讲解了iPhone应用程序开发的核心...
### iPhone开发官方指南:内存管理编程指南精要 #### 引言 在软件工程领域,尤其是在移动应用开发中,如iPhone应用开发,内存管理是一项核心技能。它关乎应用的性能、稳定性和用户体验。《iPhone开发官方指南:...
iPhone应用开发中的Object-C内存管理是开发者必须掌握的关键技能,特别是在资源有限的移动设备上,如iPhone OS(现称为iOS)。内存管理不当可能导致程序崩溃,严重影响用户体验。Object-C的内存管理基于引用计数机制...
《在Windows中安装iPhone开发环境.doc》是针对Windows用户的一份重要文档。由于Apple官方推荐使用macOS进行iOS开发,但在某些情况下,开发者可能需要在Windows环境下进行。这份文档会指导用户安装必要的工具,如...
《iPhone开发秘籍(第2版)》是一本专为iOS开发者量身打造的专业指南,旨在帮助读者深入理解和掌握iPhone应用程序的开发技术。这本教材的出现,为想要涉足或已经在iOS开发领域摸爬滚打的程序员提供了丰富的知识库,...
本资源包“cocos2d iPhone 中文开发资料大全”集合了关于Cocos2d-iPhone开发的众多资料,对于想要学习和精通这个框架的开发者来说,是一份宝贵的资源。 在Cocos2d-iPhone中,主要包含以下几个核心知识点: 1. **...
文章还提到了一些资源下载链接,其中包括iPhone开发相关的书籍、教程和源码,这些资源对于初学者来说是非常有价值的参考。如“14本经典android开发教程”、“java算法大全源码包”等,虽然名称中提到了Android或Java...
《iPhone开发实战》一书,主要涵盖了iOS应用开发的核心技术和实战经验,旨在帮助开发者深入理解并掌握iPhone应用程序的开发流程。以下将详细阐述其中的知识点: 1. **Swift编程语言**:作为iOS开发的主要语言,...
在Windows系统中搭建iPhone开发环境通常需要借助虚拟机软件,如VMware,因为Apple的官方开发工具Xcode和iOS SDK通常只支持macOS操作系统。以下是一个详细的步骤来在Windows上安装iPhone开发环境: 1. **硬件准备**...
本书《iPhone开发揭秘》是一本基础的iPhone开发教程,主要围绕非游戏框架的iPhone程序开发进行介绍。非游戏框架基于iPhone用户界面的标准控件,即典型的iPhone程序包含一个Window和若干个UIViewController,每个...
【iPhone开发环境配置详解】 在Windows XP环境下进行iPhone应用程序的开发,需要搭建一套特定的开发环境,这通常涉及到在PC上安装Mac OS X系统,因为Apple的官方开发工具Xcode只支持苹果的操作系统。本文将详细讲解...
以上概述了《IPhone中文开发文档》中提到的关键知识点,这些知识点覆盖了从Objective-C语言的基础到高级的Cocoa框架技术,对于希望从事iPhone开发的人来说是一份非常宝贵的资源。通过对这些内容的学习,开发者不仅...
- **开发契机**:当iPhone SDK发布后,Jamie Gotch意识到这是一个开发自己梦想中的游戏——Fieldrunners(一款快节奏的塔防游戏)的绝佳机会。他决定克服不熟悉的开发环境和语言障碍,投入到Objective-C和Xcode的...