zoukankan      html  css  js  c++  java
  • 委托 详解

    1、一个关于委托内使用全局变量和属性变量的经验

    经验:
    1、属性变量进入委托方法,无论之前retain count为几,出来后将被置为1。
    2、全局变量进入委托方法, 无论之前retain count 为几,委托方法执行完后将被dealloc.
    3、同样是属性变量,如果在委托方法中使用self.** 则执行完委托方法后,retaincount被置为1.以后再进入其它的委托方法,其retainCount都将是1。
    如果在委托方法中使用_***访问变量,则执行完委托方法后此变量将被dealloc,无论它进入之前retaincount是多少。

    UISearchBarDelegate 有以上现象,但 UITableViewDelegate的委托方法中就没有这些毛病。 UITableViewDelegate 可以直接使用全局变量。

    
    同一个属性变量,不同的初始化写法,不同的引用计数
    写法1:
    self.array = [[NSMutableArray alloc]init];
    [array retainCount] = 2
    写法2:
    _array = [[NSMutableArray alloc]init];
    [array retainCount] = 1


    建议:如果在委托中会用到的变量,建议声明为属性变量。

     我怀疑:UISearchBarDelegate的方法是放在autoreleasepool中被触发的。所以导致其中的对象都会被释放。

  • 相关阅读:
    python-study-08
    第一周代码整理
    python-study-阶段总结
    python-study-07
    二分查找数组中与目标数字(可以是浮点型)最近的数的位置
    寻找最大数
    零件分组(stick)
    走迷宫
    自然数的拆分问题 字典序
    素数环(回溯)
  • 原文地址:https://www.cnblogs.com/ygm900/p/3667530.html
Copyright © 2011-2022 走看看