1.对于strong:该对象强引用delegate,外界不能销毁delegate对象,会导致循环引用(Retain Cycles) 因为我们一般代理的都是当前的控制器 比如scrollView.delegate = self;这时候就成了上面的一个圈的循环引用。如果上图delegate为强指针,那么 ...
分类:
移动开发 时间:
2017-06-21 00:52:10
阅读次数:
258
转自:http://www.cnblogs.com/gudi/p/6403953.html 1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:Object o=new Object(); // 强引用 当内存空间不足,Ja... ...
分类:
编程语言 时间:
2017-06-15 20:37:27
阅读次数:
239
ARC机制之__strong具体解释 __strong 解析: 默认情况下,一个指针都会使用 __strong 属性,表明这是一个强引用。这意味着,仅仅要引用存在,对象就不能被销毁。这是一种所期望的行为:当全部(强)引用都去除时,对象才干被收集和释放。 只是, 有时我们却希望禁用这样的行为:一些集合 ...
分类:
其他好文 时间:
2017-06-05 12:45:52
阅读次数:
209
NSTimer作为一个经常使用的类,却有一个最大的弊病,就是会强引用target。造成调用timer很麻烦。稍有不慎就造成内存泄漏。 下面就是为解决问题做的封装。 直接上代码: #import <Foundation/Foundation.h> @interface LZLTimer : NSObj ...
分类:
其他好文 时间:
2017-05-30 20:47:56
阅读次数:
218
1字面意义上的常量,如2、‘Thisisok‘这样的字符串>>>print(‘a,2,3‘)a,2,32字符串单引号(‘)使用单引号指示字符串,类似shell中的强引用,所有的空格、制表符照原样保留。>>>print(‘Thisisok‘)Thisisok双引号(“)在双引号中的字符串与单引号中的字符串使..
分类:
编程语言 时间:
2017-05-15 09:53:31
阅读次数:
131
1、强引用(StrongReference) 强引用是使用最普遍的引用。假设一个对象具有强引用。那垃圾回收器绝不会回收它。例如以下: [java] view plaincopyprint? Object o = new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutO ...
分类:
编程语言 时间:
2017-05-13 17:04:26
阅读次数:
214
要实现单例,关键是要保证类的alloc和init仅仅被调用一次。而且被自身强引用防止释放。 近日读唐巧先生的《iOS开发进阶》。受益匪浅,通过GCD实现单例就是收获之中的一个,以下把这种方法与大家分享。 在GCD中,有一个函数dispatch_once,能够实现代码段的一次性运行,和static修饰 ...
分类:
其他好文 时间:
2017-05-12 00:18:05
阅读次数:
147
强引用 用的最广,我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它。它就是强引用。 如果一个对象具有强引用,那么垃圾回收期绝不会回收它,当内存空间不足,java虚拟机宁愿抛出OutOfMemoryError错误,使程序终止异常,也不会随意回收具有强引用的对象来解决内存不足问 ...
分类:
其他好文 时间:
2017-05-08 12:31:38
阅读次数:
159
1、创建block用copy修饰,拷贝到堆上 2、之前一直用这种写法,但会碰到提前释放的状态 __weak typeof(self)wakeself = self; 3、就用弱指针指向self,在block内部对weakSelf产生一个强引用,就解决了提前释放的问题 @weakify(self); ...
分类:
其他好文 时间:
2017-04-24 17:19:59
阅读次数:
134
#import "HMViewController.h" #import "HMPerson.h" @interface HMViewController () @end @implementation HMViewController - (void)viewDidLoad { [super vi... ...
分类:
移动开发 时间:
2017-04-23 16:51:39
阅读次数:
181