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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 。烊了 中级黑马   /  2014-12-5 10:05  /  815 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. NSString * str = [[NSString alloc] init];
  2. str = @"I am a string~";
  3. [str release];
复制代码


上述代码 alloc 后,系统会为str 分配空间 ,然 会为 str 变量本身分配空间吗? 如果分配了,它们的地址相连吗?所占大小怎么算的?
还有,调用release方法后, str 变量本身是怎么回收的?

3 个回复

倒序浏览
为嘛没人理我:(
回复 使用道具 举报
面向对象思想,当我们创造一个new一个对象的时候,干了三件事,
1.分配存储单元、开辟空间,2.初始化成员变量,3.返回空间的地址
alloc构造方法,一看到alloc,只执行了第一步,然后计数器+1,release方法是-1,刚好做到回收。   
回复 使用道具 举报
丶有果灬 发表于 2014-12-5 12:27
面向对象思想,当我们创造一个new一个对象的时候,干了三件事,
1.分配存储单元、开辟空间,2.初始化成员变 ...

那么我上面的str变量本身是如何分配空间的呢
还有它是如何回收内存的呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马