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

© 皮拉夫大王 中级黑马   /  2015-1-13 08:58  /  1068 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果我们引用系统的初始化函数,比如NSArray *array_stu=[[NSArray alloc] initWithObjects:stu1,stu2,stu3,stu4,stu5,nil]; 当我们[array_stu release]之前(架设release 之后array_stu 计数器为0 ),需不需要将:stu1,stu2,stu3,stu4,stu5 都release一遍?

2 个回复

倒序浏览
肯定的啊。在非ARC中,遵循“谁创建,谁release,谁retain,谁release”,因为你之前创建stu对象。
回复 使用道具 举报
mengxingdong 发表于 2015-1-13 10:44
肯定的啊。在非ARC中,遵循“谁创建,谁release,谁retain,谁release”,因为你之前创建stu对象。 ...

即使再非ARC中也需要分情况:一种是在autorelease pool中,另一种是MRC 。如果在 autorelease pool中得话当pool 结束时,系统自己将array的元素 release 一遍。如果不在pool 中的话 需要自己释放。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马