黑马程序员技术交流社区

标题: 关于内存的一个小问题 [打印本页]

作者: 脸皮猴    时间: 2014-2-21 08:52
标题: 关于内存的一个小问题
我在基础资料中学习一个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的童鞋们可能都会有所疑惑,所以提出来问下。
作者: jing迪    时间: 2014-2-21 13:57
alloc就是申请内存空间  调用alloc方法就等于申请了一块内存空间

有申请就一定要销毁空间的,  现在新版本的Xcode有ARC机制 ,可以自动销毁所以可以写成方法2那样子也可以
作者: 脸皮猴    时间: 2014-2-21 14:41
jing迪 发表于 2014-2-21 13:57
alloc就是申请内存空间  调用alloc方法就等于申请了一块内存空间

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

哟西!!难怪!!斑竹谢谢啦。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2