• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

objective-c 编程总结(第三篇)内存管理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

oc中内存管理的三项原则:

1. 谁创建(new 或者 alloc),谁release。

2. 如果你从一个方法中获得一个对象,应该假设这个对象的retaincount是1,而且已经被设置为autorelease,你不需要,也不应该release它。如果需要进一步传递这个对象,你可以进行retain或者copy操作。

3. 如果你retain了一个对象,你必须负责release它。

 

另外再补充一下。仔细查阅了release方法的定义,它被定义为oneway。这个关键字的意思是方法的调用不需要返回任何消息,方法的返回也不保证方法已经执行完毕。也就是说,当你调用了[obj release]之后,retainCount不一定会立即做出反应。所以retainCount是不可靠的,除非你愿意sleep一段时间来等待release完成。

 

再一点,对于类的属性,如果通过@property(retain)定义,最好在释放的时候,同时做两件事,1,release它,2,通过setter设置其为nil。以避免这个指针指向内存的随意位置,造成混乱。

 

要补充的第三点,就是在使用类似工厂方法返回一个创建的对象时,一定要以以下方式返回对象:

return [product autorelease];

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TIOBE2011年7月编程语言排行榜:Objective-C成为年度语言发布时间:2022-07-12
下一篇:
objective-c学习总结发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap