关于block的回调使用-防止内存泄露问题

Posted gccbuaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于block的回调使用-防止内存泄露问题相关的知识,希望对你有一定的参考价值。

block 一般用于回调,比方请求数据我们把asi封装好,仅仅用block调数据就方便很多

获取到得数据假设要给之加入数据,切记不能够使用self.(这个数组) 或者_(这个数组) addObject 这个函数

由于我们要在block内部改变外部变量,我们须要在使用blcok回调之前 

声明

__weaktypeof(self) wekSelf = self;  (在这里我使用wekSelf)

在block回调代码段内 一切self(数组或者控件) 所有替换成wekSelf防止内存泄露。


呈现一段代码:

 __weak typeof(self) wekSelf =self;

self.page = 1;

NSDictionary *dic = @{@"page":@(self.page)};

 [MyDataServicepostMonopolyGroupListRequest:dic cllback:^(id data) {

        

       if ([[data objectForKey:@"code"]integerValue] == 200) {

           NSArray *content = [[data objectForKey:@"content"]objectForKey:@"subject_lists"];

            

           if (content && ![content isKindOfClass:[NSNull class]]) {

            

                [wekSelf.groupArrremoveAllObjects];

                

               for (NSDictionary *dicin content) {

                   MYGroup *model = [[MYGroupalloc] initWithJson:dic];

                    [wekSelf.groupArraddObject:model];

                }

               dispatch_async(dispatch_get_main_queue(), ^{

                    

                    [wekSelf.circleTableViewreloadData];


                    [wekSelf.circleHeaderperformSelector:@selector(endRefreshing)withObject:nilafterDelay:0.1];

                });

                

            }

        }

    }];



以上是关于关于block的回调使用-防止内存泄露问题的主要内容,如果未能解决你的问题,请参考以下文章

java 内存泄露问题

JavaScript内存泄露,闭包内存泄露如何解决

#yyds干货盘点#前端内存泄露问题

LeakCanary检测内存泄漏

C++ 关于内存泄露问题。内存泄露是指用new 分配的内存没有用delete释放,如果未释放会有啥后果?

使用MLeaksFinder检测项目内存泄露总结