简化通知中心的使用说明1. 简化通知中心,笔者曾经实现过不需要移除的通知中心,基于弱引用集合(相对于强引用集合如NSArray,NSDictionary等)编写,本例子并无太多新意2. 简化的通知中心由一个对象组织控制,不需要你手动移除被监听的对象,这是唯一的一点点有新意的地方3. 在处理接收通知对...
分类:
其他好文 时间:
2015-07-16 00:23:28
阅读次数:
226
IOS学习(OC语言)知识点整理一、OC 中的ARC内存管理1)ARC中释放对象的内存原则:看这个对象有没有强引用指向它2)strong:强引用,默认情况下的引用都是强引用3) weak:弱引用__weak4)ARC环境下:与内存相关的代码都不能使用了,如果要在ARC环境下使用MRC内存管理代码 如...
分类:
移动开发 时间:
2015-07-15 01:16:35
阅读次数:
233
release动作只会对自身计数减一,而不会对属性发出release消息,只有该对象的引用计数为0,系统才会对该对象的所有属性发出release消息类A的属性有类B,类B的属性有类A,而且两者都是强引用retain实例化后[A retainCount]是2 [B retainCount]是2[A ....
分类:
移动开发 时间:
2015-07-13 22:20:02
阅读次数:
396
什么对象需要被回收?? 没有被引用的对象要被回收。怎么判定对象已经没有被引用???1、引用计数算法。(因为循环引用问题,java没有使用这种方法)2、可达性分析法。主流实现。判定对象是否被引用。从GC ROOTS节点找引用链。(对象的引用有分为:强引用、软引用、弱引用、虚引用。 先不管~)根据区域....
分类:
其他好文 时间:
2015-07-08 20:55:56
阅读次数:
165
移动设备开发中,由于移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的.android提供来一个缓存工具类LruCache,开发中我们会经常用到,下面来他是如何实现的.LruCache缓存数据是采用持有数据的强引用来保存一定数量的数据的.每次用到(获取)一个数据时,这个数据就会被移动(一个保存数据的)队列的头部,当往这个缓存里面加入一个新的数据时,如果这个缓存已经满了,就会自动删除这个缓存队列里面最后一个数据,这样一来使得这个删除的数据没有强引用而能够被gc回收....
分类:
移动开发 时间:
2015-07-01 22:13:12
阅读次数:
218
内存管理之 ARC 和 自动释放池一、ARC 中的变量所有权修饰符变量修饰符,主要用来标识对象的生命周期.在手动内存管理方式中没有这些概念.
ARC 环境下变量所有权修饰符主要有以下几个: __strong
__weak
__unsa_unretained
__autoreleasing详细说明:
(1) 变量默认值都是__ strong 修饰
只要强引用存在,对象就不能释放.当超过了对...
分类:
其他好文 时间:
2015-06-30 22:05:09
阅读次数:
165
一,重力与碰撞//创建物理仿真器 UIDynamicAnimator*animator = [[UIDynamicAnimatoralloc]initWithReferenceView:self.view]; self.animator= animator;//强引用animator,否则代...
分类:
移动开发 时间:
2015-06-30 18:10:16
阅读次数:
117
定义:循环引用可以简单理解为A引用了B,而B又引用了A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放;造成循环引用的三种情况计时器NSTimer原因分析:NSTimer变量通过target对xxxModel有强引用,NSTimer变量是xxxModel内部的成员变量,所以...
分类:
其他好文 时间:
2015-06-29 06:27:47
阅读次数:
378
Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放。 LruCache使用一个LinkedHashMap简单的实现内存的缓存,没有软引用,都是强引用。根据LinkedHashMap的结构原理,最新的应该在尾端,旧的应该在头部。如果添加的数据大于设置的最大值,就删除最先缓存(头部)的数据来调整内存。...
分类:
移动开发 时间:
2015-06-27 10:02:13
阅读次数:
230
遇到 delloc 没有调用 基本上就可以断定是循环引用造成的了。
而遇到这种情况基本上可以分为
1: 属性声明weak的地方 写成了 strong ,比如delegate。
2: block语法块中 存在的强引用。
所以遇到delloc 基本上排查下这两种情况 就能解决80%的问题了。
但是现实中往往会有遇到一些其他的问题所在 ,比如 我今天遇到的一个viewcontrolle...
分类:
其他好文 时间:
2015-06-26 16:22:35
阅读次数:
93