什么时候在block中不需要使用weakself 问题 我们知道,在使用block时为了避免循环引用,通常需要使用weakself与strongself,例如: 那么什么时候在block里调用self,不需要使用weak self呢? 答:在block本身不被self持有,而被别的对象 ...
问题 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: 那么请问:什么时候在 block 里面用 self,不需要使用 weak self 答案 当 block 本身不被 self 持有,而被别的对象持有,同时不产生循环引用的时候,就不需要使用 weak self 了。最常见的代码就是 UIView 的动画代码 ...
2016-12-08 08:35 0 4760 推荐指数:
什么时候在block中不需要使用weakself 问题 我们知道,在使用block时为了避免循环引用,通常需要使用weakself与strongself,例如: 那么什么时候在block里调用self,不需要使用weak self呢? 答:在block本身不被self持有,而被别的对象 ...
问题 继续回答昨天的问题第二问。 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: 那么请问:为什么 block 里面还需要写一个 strong self,如果不写会怎么样? 答案 ...
题目:找出两个 UIView 的最近的公共 View,如果不存在,则输出 nil 。 分析:这其实是数据结构里面的找最近公共祖先的问题。 一个 UIViewController 中的所有 view 之间的关系其实可以看成一颗树,UIViewController 的 view 变量是这颗树的根 ...
问题 weak 变量在引用计数为0时,会被自动设置成 nil,这个特性是如何实现的? 答案 在 Friday QA 上,有一期专门介绍 weak 的实现原理。https://mikeash.co ...
前言: 最近都在折腾 Sagit 架框的内存释放的问题,所以对这一块有些心得。 对于新手,学到的文章都在教你用:typeof(self) __weak weakSelf = self。 对于老手,可能早习惯了到处了WeakSelf了。 这次,就来学学,如何不用WeakSelf ...
一个 Objective-C 对象的内存结构是怎样的? 如果把类的实例看成一个C语言的结构体(struct),它首先包含的是一个 isa 指针,而类的其它成员变量依次排列在结构体中。排列顺序如下图所示: 为了验证该说法,我们在Xcode中新建一个工程,在main.m中运行 ...
转载,原文: http://blog.lessfun.com/blog/2014/11/22/when-should-use-weakself-and-strongself-in-objc-block/ 当然有一个更详细的专题: http://tanqisen.github.io ...
我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢? ConcurrentHashMap的简介 “我想有基础的同学知道在jdk1.7中是采用 ...