自动释放池,

Penson *p=[[Penson alloc] init];
        [p retain];
        NSLog(@"%ld",[p retainCount]);
        [p release];
        
        [p release];
        p=nil;
        NSLog(@"%ld",[p retainCount]);
        */
        /*
        Penson *p1=[[Penson alloc] init];
        [p1 retain];
        NSLog(@"%ld",[p1 retainCount]);
        [p1 autorelease];
        NSLog(@"%ld",[p1 retainCount]);
        [p1 autorelease];
        NSLog(@"%ld",[p1 retainCount]);



  //内存中会出现的问题:内存溢出,野指针.
        //gc:垃圾回收机制.可以自动判断那些内存是不在使用的,由系统帮助我们回收.
        //MRC:手动内存管理,也叫手动引用计数,由我们自己判断哪块内存还在使用,同时判断有多少人在使用,当引用计数为0的时候,内存释放.同时指针置空(防止野指针)
        //ARC:自动内存管理,也叫自动引用计数,当我们需要引用计数减一时,由编译器帮我们添加release语句.
        
        //OC提供了垃圾回收机制.但是IOC并未采用.
        //MACOC 10.8之前使用垃圾回收机制, 10.8之后弃用.
        
        //关于引用计数的一些方法
        //+alloc:开辟内存,设置引用计数为1
        //-retain:使引用计数 +1
        //-copy:将内存或对象复制 一份,并将x复制的内存或对象引用计数置 1 .
        //-release:使引用计数 -1 .
        //-autorelease:使引用计数 -1 .只不过是在出自动释放池之后才执行 -1 操作.
        
        //-dealloc:  当引用计数为0时,由系统自动调用释放空间.
        
        //自动释放池,有两种形式:
        //第一种:@autorelease{}
        //第二种:
        /*
         NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
        
         [poor release];
        */

NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
    
    
    Penson *p1=[[Penson alloc] init];
    [p1 retain];
    NSLog(@"%ld",[p1 retainCount]);
  //  [p1 autorelease];
   // NSLog(@"%ld",[p1 retainCount]);
    [p1 autorelease];
    NSLog(@"%ld",[p1 retainCount]);

    
    
    
    
    [pool release];


 
 @autoreleasepool {
        
        
        Person *p=[[Person alloc] init];
        
        NSNumber *mayage=[[NSNumber alloc] initWithInt:18];
        
        NSString *s=[[NSString alloc] initWithString:@"xiaoA"];
        p.age=mayage;
        NSLog(@"%@",p.age);
        
        p.name=s;
        [s release];
        [mayage release];
        [p release];
        
        
        
        Student *stu=[[Student alloc] init];
        NSString *s1=[[NSString alloc] initWithString:@"xiaocai"];
        stu.name=s1;
        
        NSNumber *n1=[[NSNumber alloc] initWithInt:16];
        stu.num=n1;
        NSLog(@"%@,%@",stu.name,stu.num);
        
        [stu release];
        [s1 release];
        [n1 release];
        
        
        
        
        
        
    }


//举例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值