@autoreleasepool 重指向的问题, 两个小题 (第二题两个错误)

来源:互联网 发布:mac开机出现禁止符号 编辑:程序博客网 时间:2024/06/06 23:55
    //autorelease 会将声明为autorelease的对象放入离它最近的自动释放池中,当自动释放池销毁时,会向池中的每一个对象发送一个release消息.
   // [pool release];
//    @autoreleasepool {
//        for (long i = 0; i < 10000000; i++) {
//            Person *per = [[Person alloc]init];
//            [per autorelease];
//        }

//    }

 

  //内存管理基本原则:
    //如果你对一个对象进行alloc,retain,copy之后,你就拥有了该对象的所有权,你就必须对它进行release或者autorelease.
    @autoreleasepool {
      NSString *per = [[NSString alloc]init];//0-1
        [per retain];//1-2
        [per retain];//2 -3
        //栈区,常量,堆区
        per = @"aa";
        [per release];//
        [per release];
        [per release];
      //内存泄露
        //常量内存内存系统管理
    }
0 0