`
lovebirdegg
  • 浏览: 172203 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

iPhone开发中内存的相关问题

阅读更多
原文地址: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开发基础教程电子书

    给大家推荐一下,上面有斯坦福大学iphone开发视频教程中英文字幕版1-6集,还有超过100本的iphone开发方面的电子书可下载(速度很快哦!)。  更新:如果大家在学习和工作中遇到什么问题,请给我留言,大家...

    ios iphone开发-内存管理

    ios iphone开发-内存管理 所有权是iPhone内存管理的核心思想,对象的所有者负责在使用完对象后进行释放。一个对象可以有多个所有者,当它没有所有者时将被设置为取消分配(deallocation)

    iPhone开发教程之iPhone内存释放注意事项两则--千锋培训

    文档介绍了iPhone内存通过free释放的两个注意事项

    iPhone内存管理

    详细且全面地讲述了iPhone开发中的内存管理技术

    iPhone开发基础教程

    Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。. 本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及...

    iphone开发入门经典源码

    iPhone开发入门经典》基于Apple最新发布的iPhoneOS3.0编写,循序渐进地介绍了从事iPhoneF发所需的基本知识,包括使用Xcode、Interface Builder、objective-C和(Cocoa Touch等开发工具,设计及美化用户界面,读写和...

    iPhone 应用开发中Object-C 内存管理--千锋培训

    文档介绍了简介,基本概念,函数,获得所有权的函数包括,释放所有权的函数包括,规则,容器,其他所有权的产生,,循环引用

    IPhone开发面试试卷以及答案

    iphone开发面试试卷以及答案,主要考察oc以及C语言和C++的内容,内存机制,xcode和SDk开发应用等

    iphone开发笔记

    iPhone游戏中既播放背景音乐又播放特效声音的办法 16 NSNotificationCenter用于增加回调函数 17 UINavigationBar 背景Hack 17 清除电话号码中的其他符号(源码) 18 正则判断:字符串只包含字母和数字 18 一行代码...

    iOS DevCamp幻灯片分享:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞

    本演讲将结合讲师这些年自学iPhone开发的历程,结合自己多个应用开发实践的案例,与大家分享iOS开发的技术实践,内容将涉及:开源框架的选择,如何搭建程序架构从而写更干净的代码,如何有效使用内存和防止内存泄露...

    IPhone开发常用技术笔记汇总

    本压缩包中包含了Iphone开发中常用到的技术总结笔记,五六十中技术方法以及季节方案,包括内存管理,方法回调,获取当前地点,自定义CELL,VIew圆角等等等,太多的奶水包,是我开发中所有的精华所在,只有你不知道的...

    IPhone中文开发文档

    什么是cocoa 起步 Objective—C语言 内存管理 Target/Action 辅助对象 Key—Value Coding ,Key—Value Observing NSArrayControler NsUndoManager Archiving Coredata基本原理 User Default

    object c/iphone 开发 试题

    retain是通知编译器向分配给此属性的对象发送一个保留(retain)消息,确保属性的实例变量在被使用过程中不会被从内存中删除; nonatomic是 创建一个互斥访问,避免读和写不同步(非原子性访问); 通过这个属性声明...

    iPhone应用程序开发指南.中文.pdf

    相关信息 5 核心应用程序 6 核心应用程序架构 6 应用程序的生命周期 6 事件处理周期 9 基本设计模式 11 应用程序运行环境 12 启动过程快,使用时间短 12 应用程序沙箱 13 虚拟内存系统 13 自动休眠定时器 14 应用...

    《iPhone开发实战》.(Christopher Allen).pdf

     本书适合所有 iphone开发人员学习参考。... 目录 第一部分 iphone编程简介. 第1章 iphone简介2 1.1 iphone核心规范3 1.1.1 iphone的输入及输出规范3 1.1.2 iphone网络规范4 1.1.3 iphone浏览器规范5...

    iPhone开发秘籍.part2.rar

    本书针对iPhone 开发新手面对的大多数常见问题逐一提供了解决方案:布置界面元素,响应用户操 作,访问本地数据源并连接到因特网。本书按示例进行组织,因此代码拿来就可以使用,非常方便。程序 员可以在自己的项目...

    iPhone开发秘籍.part4.rar

    本书针对iPhone 开发新手面对的大多数常见问题逐一提供了解决方案:布置界面元素,响应用户操 作,访问本地数据源并连接到因特网。本书按示例进行组织,因此代码拿来就可以使用,非常方便。程序 员可以在自己的项目...

    iPhone开发秘籍.part1.rar

    本书针对iPhone 开发新手面对的大多数常见问题逐一提供了解决方案:布置界面元素,响应用户操 作,访问本地数据源并连接到因特网。本书按示例进行组织,因此代码拿来就可以使用,非常方便。程序 员可以在自己的项目...

    iphone开发文档

    windows下用虚拟机搭建iphone的开发平台,即首先要安装MacOS,并且安装最新版的MacOS,以保证与最新版的Xcode兼容。 实现条件: (1)cpu支持虚拟技术。可以通过一个小软件查看cpu是否支持虚拟技术 (2)cpu的主频与内存...

Global site tag (gtag.js) - Google Analytics