定义block的时候,会对外部变量做一次copy,会对self进行强引用1.__weak是ios 5.0 推出的__weak 相当于weak 本身是弱引用,但是如果对象被释放,执行的地址会指向nil 更安全__weak typeof(self) weakSelf = self;2__unsafe_u...
分类:
其他好文 时间:
2015-12-28 01:00:36
阅读次数:
215
一、直接看Bug:unable to dequeue a cell with identifier cell_id - must register a nib or a class for the identifier or connect a prototype cell in a storybo...
分类:
其他好文 时间:
2015-12-25 13:12:24
阅读次数:
427
以前一直没搞懂为什么C#在做对象序列化时(Json序列化,XML序列化等)有时候会出现循环引用的问题,下面写了个例子,类People有一个属性引用了类Child,而类Child也有一个属性引用了类People,并且两个属性的get访问器中都会new一个彼此类型的对象,这样在访问People类的Chi...
循环引用的简单理解:A引用B,B又引用A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。一:Block1.ARC环境下: 使用__weak声明一个代替self的新变量代替原先的self;2.MRC环境下:使用__block .二:代理ARC环境下:声明代理时使用弱引用we...
分类:
移动开发 时间:
2015-12-21 10:48:05
阅读次数:
134
/***类名首字母大写:变量名和方法名小写,使用驼峰命名法。** @class 和#import区别是解决循环引用导致的死锁问题。(1)self 指的是类对象本身,super是父类对象本身。(2)self 用来调用本类对象的方法,super 调用父类的方法。1. 1)类,类名,。特征和行为。2)对象...
分类:
其他好文 时间:
2015-12-15 21:02:18
阅读次数:
239
经验 delloc 无呼叫 基本上可以得出结论,即循环引用的原因。遇到这样的情况基本上可分为 1: 属性声明weak的地方 写成了 strong 。比方delegate。2: block语法块中 存在的强引用。所以遇到delloc 基本上排查下这两种情况 就能解决80%的问题了。可是现实中往往会有遇...
分类:
其他好文 时间:
2015-12-14 14:03:29
阅读次数:
150
----------------------MRC情况下Block内存分析----------------------------1.如果在block中使用全局变量,他为了持有这个变量,会将对应的对象加一2.使用__block,避免循环引用3.在block中使用局部变量的时候,会将变量复制一份存放到...
分类:
移动开发 时间:
2015-12-07 08:35:49
阅读次数:
180
ARC内存管理栈用于存储方法的局部变量堆用于存储对象ARC Automatic Reference Counting 自动引用计数弱应用(weak reference)用于避免循环引用导致的内存释放不了的问题@property属性的名称是成员变量的名称去掉下划线,申明了属性后会自动在编译期生成带下划...
分类:
移动开发 时间:
2015-12-04 14:24:13
阅读次数:
195
解决Eclipse中Java工程间循环引用而报错的问题如果我们的项目包含多个工程(project),而它们之间又是循环引用的关系,那么Eclipse在编译时会抛出如下一个错误信息:“A cycle was detected in the build path of project: XXX”解决方法...
分类:
其他好文 时间:
2015-11-30 20:13:45
阅读次数:
112
retain cycle 的产生说到retain cycle,首先要提一下Objective-C的内存管理机制。作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于C++的极其非人道的内存管理,Objective-C提出了一些机制来减少内存管理的难度。 比如:内存计数...
分类:
其他好文 时间:
2015-11-27 01:04:46
阅读次数:
260