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中被触发的。所以导致其中的对象都会被释放。

  • 相关阅读:
    Java字符串的常用方法
    鼠标移小图片大图片改变
    js获得ul li 下的img的src属性
    移动端左右滑动导航
    边框加阴影
    移动端网站根据设计稿动态设置rem
    使用git命令
    HTML返回顶部
    java对象头
    Flutter 实现酷炫的3D效果
  • 原文地址:https://www.cnblogs.com/ygm900/p/3667530.html
Copyright © 2011-2022 走看看