zoukankan      html  css  js  c++  java
  • 测试对象销毁后指针是否还可以使用

    <span style="font-size:18px;">//  04-测试对象销毁后指针是否还可以使用
    //
    //  Created by wanghy on 15/8/13.
    //
    //
    
    
    //为了直观,直接将.m和.h文件写在main.m中。
    #import <Foundation/Foundation.h>
    
    
    //定义 person类  包含  姓名,年龄和性别
    @interface person : NSObject
    {
            @public
                NSString * _name;
                int _age;
        NSString * _gender;
    }
    @end
    
    
    @implementation person
    
    
    //重写delloc方法
    -(void)dealloc{
    
        NSLog(@"对象销毁了");
        [super dealloc];
    }
    
    
    
    @end
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            
            person * p = [[person alloc ]init];
            
            p->_name = @"张三丰";
            p->_age  =  211;
            p->_gender = @"男";
            
            NSLog(@"%@",p->_name);
            
            
            //此时引用计数器减一之后系统执行销毁对象的delloc 方法。只是将对象所在的内存标记为可写。,此时p还指向该内存,称为僵尸对象。此时的p指向的内存所存的数据还没有被覆盖,所以还是能够打印出来。当系统向该地址重新存储其他数据时就会覆盖。
            [p release]; // 不能使用retain 让僵尸对象复活
            
            NSLog(@"%@   %lu",p->_name, p.retainCount); //  引用计数器还是1,因为反正要销毁,计数器也没必要减一了,
    
           //  NSLog(@"Hello, World!");
        }
        return 0;
    }
    </span>

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    【NYOJ】[22]素数求和问题
    【NYOJ】[13]Fibonacci数
    【NYOJ】[13]Fibonacci数
    【CodeForces】[606A]Magic Spheres
    【CodeForces】[606A]Magic Spheres
    【杭电】[1201]18岁生日
    【杭电】[1201]18岁生日
    【杭电】[1994]利息计算
    【杭电】[1994]利息计算
    新型量子云装置问世 让你免费体验量子计算机
  • 原文地址:https://www.cnblogs.com/wahy/p/4817221.html
Copyright © 2011-2022 走看看