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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 香草芭芙 中级黑马   /  2015-5-14 10:08  /  1124 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当关闭ARC的时候
  1. #import <Foundation/Foundation.h>
  2. #import "Person.h"
  3. int main(int argc, const char * argv[]) {

  4.         Person * p1 = [[[Person alloc] init] autorelease];

  5.         p1.age = 10; //对象没有释放.
  6.         @autoreleasepool {
  7.                 Person * p2 = [[[Person alloc] init] autorelease];

  8.                 p2.age = 20; //对象释放.
  9.         }
  10.         //疑问: autorelease 必须配合 autoreleasepool 使用吗? 而且还有@autoreleasepool的嵌套使用, 这怎么掌握 T.T

  11.         //把所有代码都写在@autoreleasepool里面 这样做对吗? 会有什么安全隐患?

  12.         return 0;
  13. }
复制代码

2 个回复

倒序浏览
必须得相互配合:autorelease 必须配合 autoreleasepool,可以嵌套使用!就知道这么多
回复 使用道具 举报
autorelease 必须配合 autoreleasepool 使用,嵌套就跟{}代码块中局部变量作用域类似的,真正开发IOS时,你是不会把所有都写到main函数的,也就是不会都写到autoreleasepool中
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马