验证-对象是否是创建后立刻销毁的方法

  • 验证对象是否是,创建后就立马销毁!
  • NSObject类,里面有个- (void)dealloc方法.类销毁前都会调用此方法.
  • 举例
    -- 在想要测试是否销毁的类里面,实现dealloc方法
    -- 只要打印此方法,就表明此类销毁了.
    -(void)dealloc{
      NSLog(@"销毁...");
      }
    
    -- 有没有可能,是跳出括弧后,销毁的呢?
    - (void)viewDidLoad {
      ... 
      scrollView.delegate = [[DelegateClassTest alloc]init];
      NSLog(@"delegateTest....");
    }
    

打印结果是: 先打印"销毁...",后打印"delegateTest....",所以不是跳出括弧后,再销毁.(也就是说,DelegateClassTest类是创建后立刻销毁了)


  1. 为什么会创建即刻销毁呢?
    delegateweak,OC语法: 当一个对象创建出来,没有强指针(strong)引用,那么立马销毁!
  2. 怎么让对象不立刻销毁呢?
    用一个强指针,指向不想让其消失的对象,就可以了.
     - (void)viewDidLoad {
      ...
       DelegateClassTest *delegateTest = [[DelegateClassTest alloc]init];
       scrollView.delegate = delegateTest;    
        NSLog(@"delegateTest....");
      }
    
    先打印"delegateTest...."后打印,"销毁...",所以是跳出括弧后,再销毁类.

    只打印delegateTemp....,说明创建的对象,没有销毁!
    #import "DelegateClassTest.h"
    @interface ViewController ()
    -- 用 strong (强指针) 修饰
    @property(nonatomic,strong)DelegateClassTest *delegateTest; 
    @end
    
    - (void)viewDidLoad {
      ....
      self.delegateTest = [[DelegateClassTest alloc]init];
      scrollView.delegate = self.delegateTest;
       NSLog(@"delegateTest....");
    }
    

你可能感兴趣的:(验证-对象是否是创建后立刻销毁的方法)