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

转载于:https://www.cnblogs.com/pretty-guy/p/4595989.html

猜你喜欢

转载自blog.csdn.net/weixin_34067049/article/details/93199929