zoukankan      html  css  js  c++  java
  • OC 中的block使用

      在iOS的开发过程中,使用块的地方很多也很方便,但是在使用块的过程中要注意内存泄露的问题。

      在块创建的时候,会对块内的所有对象的引用计数加一,直到块销毁,所以在使用块的过程中需要我们进行处理,在这里以AFNetworking的代码举例,代码如下:

      

    __weak __typeof(self)weakSelf = self; 
    self.backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^{ 
        __strong __typeof(weakSelf)strongSelf = weakSelf; 
    }]; 

      weakSelf是为了block不持有self,避免循环引用,而再声明一个strongSelf是因为一旦进入block执行,就不允许self在这个执行过程中释放。block执行完后这个strongSelf会自动释放,没有循环引用问题。

  • 相关阅读:
    DB2
    Data Queue
    QMQY
    CMD(SA400 Command)
    Software development process
    CSS display样式
    CSS行高line-height解释
    CS和CS3知识点
    HTML图片<img>标签空白解决方法
    CS清除浮动
  • 原文地址:https://www.cnblogs.com/pretty-guy/p/4595989.html
Copyright © 2011-2022 走看看