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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 脸皮猴 高级黑马   /  2014-2-21 08:52  /  2100 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我在基础资料中学习一个OC小程序的时候有点小疑惑,提出来问下。
/*****************写法1****************/
#import<Foundation/Foundation.h>

   int main(intargc,constchar*argv[])

   {
  NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];

      NSLog(@"good night!");

      [pooldrain];

      return0;

    }

/*****************************************/

/*****************写法2*******************/

#import<Foundation/Foundation.h>

   int main(intargc,constchar*argv[])

   {
      NSLog(@"good night!");
      return0;

    }
/*****************************************/

我知道这两个写法输出效果都一样,但是第二个写法是没有申请内存和释放内存的,我见视频讲解内容里,老师也是按第二个写法写的一个小程序,但是我看查网上也大多是按第一个写法的。我想问,为什么第二个写法不用申请和释放内存勒?是因为这个小程序很小不影响吗?我相信初OC的童鞋们可能都会有所疑惑,所以提出来问下。

评分

参与人数 2技术分 +2 黑马币 +5 收起 理由
ios_fce + 5
滔哥 + 2

查看全部评分

2 个回复

倒序浏览
alloc就是申请内存空间  调用alloc方法就等于申请了一块内存空间

有申请就一定要销毁空间的,  现在新版本的Xcode有ARC机制 ,可以自动销毁所以可以写成方法2那样子也可以
回复 使用道具 举报
jing迪 发表于 2014-2-21 13:57
alloc就是申请内存空间  调用alloc方法就等于申请了一块内存空间

有申请就一定要销毁空间的,  现在新版本 ...

哟西!!难怪!!斑竹谢谢啦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马