Strong reference cycles 循环引用

就像 Swift 里的闭包一样,区块会造成内存问题,就是循环引用。

循环引用的意思是,两个强引用类型的对象,互相引用,而永远不会被释放。 解决方法从理论上来说是显而易见的,我们只要把强应用改成弱引用就好了。

Swift 里面我们可以用 unowned,但是 Objective-C 里没有这个。所以我们用到的是 __weak,可以参考下面这段代码:

MyViewController * __weak weakSelf = self;
NSString* (^myBlock)(void) = ^{
    return [weakSelf runSomeMethod];
};

results matching ""

    No results matching ""