Message from debugger: Terminated due to memory issue

突然反馈回来点进联系人列表,有时候数据无法显示,点击空白崩溃。
首先复现了一边问题,进入联系人列表,内存突然从50M左右,到200、300M。。。闪退。确定该页面发生内存泄漏。
使用leak在内存树结构中,发现一个网络请求耗内存巨大,断点跑之后发现进入死循环。网络请求返回代码部分如下:

if (chnArr.count>=1) {
                    NSMutableArray*endArray=[NSMutableArray array];
                    NSMutableArray*depArr=[NSMutableArray array];
                    for (int i=0; i0) {
                        //endArray=self.topArr; //引起泄漏原因
                        endArray = [NSMutableArray arrayWithArray:self.topArr];
                    }
                    if (self.depArr&&self.depArr.count>0) {
                        
                        for (int i=0; i

注释代码处为问题原因,表现在使得下面的depArr无限循环,topArr地址为depArr,endArr地址为topArr。
解决方法:使用 arrayWithArray 方法创建新对象,而不是只用内存地址复制。

你可能感兴趣的:(Message from debugger: Terminated due to memory issue)