问题 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: 那么请问:什么时候在 block 里面用 self,不需要使用 weak self? 答案 当 block 本身不被 self 持有,而被别的对象持有,同时 ...
分类:
移动开发 时间:
2016-12-08 09:45:07
阅读次数:
425
问题 有没有这样一个需求场景,block 会产生循环引用,但是业务又需要你不能使用 weak self? 如果有,请举一个例子并且解释这种情况下如何解决循环引用问题。 答案 需要不使用 weak self 的场景是:你需要构造一个循环引用,以便保证引用双方都存在。比如你有一个后台的任务,希望任务执行 ...
分类:
移动开发 时间:
2016-12-08 09:36:37
阅读次数:
190
iOS代理模式的简单理解:当一个对象无法直接获取到另一个对象的指针,又希望对那个变量进行一些操作时,可以使用代理模式。 代理主要由三部分组成: (1)协议:用来指定代理双方可以做什么,必须做什么。 (2)代理:根据指定的协议,完成委托方需要实现的功能。 (3)委托:根据指定的协议,指定代理去完成什么 ...
分类:
移动开发 时间:
2016-12-07 20:00:48
阅读次数:
157
一、Block block的内部引用了对象的属性或者方法,导致block保留了对象,同时对象又保留了block,形成循环引用。 解决方案是,在ARC中采用__weak对对象进行弱化,在非ARC中采用__block对对象进行弱化。如下: 二、NSTimer 类拥有一个_timer属性,_timer的t ...
分类:
其他好文 时间:
2016-12-07 07:46:28
阅读次数:
207
循环引用,看我就对了 我是一头来自北方的羊,咩-咩-咩-!谈到循环引用,不知道你能想到什么?可能是delegate为啥非得用weak修饰,可能是block为啥总是需要特殊对待,你也可能仅仅想到了一个weakSelf,因为它能帮你解决99%的关于循环引用的事情。本文中,我将谈一谈我对循环引用的看法。 ...
分类:
其他好文 时间:
2016-12-06 20:06:59
阅读次数:
287
1 Iterator( 遍历器) 的概念
JavaScript 原有的表示“ 集合” 的数据结构, 主要是数组( Array) 和对象( Object), ES6 又添加了 Map 和 Set。 这...
分类:
编程语言 时间:
2016-12-06 09:47:25
阅读次数:
324
一、概述 在C语言中,函数和初始化的全局变量(包括显示初始化为0)是强符号,未初始化的全局变量是弱符号。 对于它们,下列三条规则使用: ① 同名的强符号只能有一个,否则编译器报"重复定义"错误。 ② 允许一个强符号和多个弱符号,但定义会选择强符号的。 ③ 当有多个弱符号相同时,链接器选择占用内存空间 ...
分类:
编程语言 时间:
2016-12-03 23:38:56
阅读次数:
604
关于__block 与__weak http://stackoverflow.com/questions/19227982/using-block-and-weak 一下是一些区别的介绍 MRC: __block 能够使访问的变量能够在block中的修改生效,__block能够避免retain cy ...
分类:
移动开发 时间:
2016-12-02 01:53:54
阅读次数:
162
strong,weak,retain,assign,copy nomatic 等的区别 copy与retain:1、copy其实是建立了一个相同的对象,而retain不是;2、copy是内容拷贝,retain是指针拷贝; 3、copy是内容的拷贝 ,对于像NSString,的确是这样,但是如果cop ...
分类:
移动开发 时间:
2016-12-01 14:54:28
阅读次数:
259
Serf使用Gossip Protocol来广播消息到集群中。本文介绍这个内部协议的细节。gossip协议基于“SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol”,有一写小的适配,很大 ...
分类:
其他好文 时间:
2016-12-01 03:16:30
阅读次数:
184