A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 gaoxinglei123 于 2014-4-30 11:23 编辑

nsobject *obj=@"dhjhffffh"用手动执行release吗?

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

5 个回复

倒序浏览
不用,你这定义的是字符串对象,不需要release
回复 使用道具 举报
在OC中虽然字符串也是对象,但字符串在oc中较特殊并不需要对其进行释放,即不需要[obj release];
可以理解为,这个字符串对象并不是通过alloc创建的,因此不需要对其引用计数器减1。
回复 使用道具 举报
内存管理黄金法则:
The basic rule to apple is everything that increases the reference counter with alloc,[mutable]copy[WithZone:] or retainis in charge of the corresponding [auto]release.
如果一个对象使用了alloc,[mutable]copy,retain,那么你必须使用相应的release或autonrelease
回复 使用道具 举报
1、谁创建,谁release:有始有终!!

-如果你通过alloc、new或[mutable]copy来创建一个对象,那么你必须调用release或autorelease
-换句话说,不是你创建的,就不用你去[auto]release

2、谁retain,谁release
-只要你调用了retain,无论这个对象是如何生成的,你都要调用release

所以,你说的那种不需要自己管理
回复 使用道具 举报
脸皮猴 发表于 2014-4-29 10:52
1、谁创建,谁release:有始有终!!

-如果你通过alloc、new或[mutable]copy来创建一个对象,那么你必须 ...

哦。懂了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马