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会自动释放,没有循环引用问题。

  • 相关阅读:
    Android测试入门篇
    SQL的基本知识
    正则表达式
    ES5语法
    vscode
    继承小结
    工作遇到的问题
    后台程序员的HTTP缓存
    xhr下载图片/服务器向客户端推送消息
    HTTP2.0
  • 原文地址:https://www.cnblogs.com/pretty-guy/p/4595989.html
Copyright © 2011-2022 走看看