黑马程序员技术交流社区
标题:
在使用一个weak的 property 前应该注意的
[打印本页]
作者:
yanggangcl
时间:
2015-11-4 22:29
标题:
在使用一个weak的 property 前应该注意的
在使用一个weak的 property 前应该注意检测该property是否为nil,如果是类似检测strong的property的方法则为:
if (self.someWeakProperty) {
[someObject doSomethingImportantWith:self.someWeakProperty];
}
复制代码
但是这样是有问题的,因为如果是多线程操作,则可能在检测过程中被dealloc掉了,所以正确的方法应该是:
NSObject *cachedObject = self.someWeakProperty;
if (cachedObject) {
[someObject doSomethingImportantWith:cachedObject];
}
cachedObject = nil;
复制代码
与第一种的检测方法的区别在于,用strong指针指向它,保证它在被检测的过程中还活着,不会被dealloc掉。
最后不要忘了撤掉strong指针
作者:
王世杰
时间:
2015-11-4 22:37
好难啊!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2