美文网首页ios开发
记一次collectionView的内存释放

记一次collectionView的内存释放

作者: 微_涼 | 来源:发表于2022-07-20 17:34 被阅读0次

    在collectionView的方法中:

     __weak typeof(self)weakSelf = self;
        cell.deletHeaderBlock = ^{
            __strong typeof(weakSelf)strongSelf = weakSelf;
            UIView*view = [collectionView cellForItemAtIndexPath:selectIndex]
        };
    

    在cell的block里面直接使用collectionView会造成循环引用,Xcode的内存检测工具也不能检测到,控制器的dealloc方法也能够正常执行,但是内存不会释放掉,使用strongSelf.collectionView代替直接使用collectionView便可解决问题.

    另外由于block的变量捕获机制,当在block中使用局部对象时,如果这个对象占用内存很大,会导致内存占用过高,可以在block外面先创建一个变量记录要使用的值,在block内部使用这个变量,可以减少内存占用。

        UIImageOrientation orientation = currentUseVirtaulHeaderModel.imgOrientation;
        dispatch_source_set_event_handler(self.timer, ^{
            [self playVirtualHeaderWithPixelBufferArray:pixelBufferArray imgOrentation:orientation];
        });
    

    相关文章

      网友评论

        本文标题:记一次collectionView的内存释放

        本文链接:https://www.haomeiwen.com/subject/xiqyirtx.html