亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS-再談ARC里內存問題,ARC里數組、對象內存得不到釋放?

2019-11-14 18:52:21
字體:
來源:轉載
供稿:網友

1.前言  

     本來以為在改成ARC以后,不再需要考慮內存問題了,可是在實踐中還是發現有一些內存問題需要注意,今天我不談block的循環引用的問題,主要說說一些對象、數組不內存得不到釋放的情況.
 

2.數組內存得不到釋放的情況  

//組織字典數據- (NSMutableDictionary *)setupDicData{       NSMutableDictionary *dict = [NSMutableDictionary dictionary];    for (int i = 0; i <= 30; i++) {               [dict setObject:[self setupArrayData] forKey:[NSString stringWithFormat:@"%d%@",i,@"class"]];    }    return dict;}//組織數組數據- (NSMutableArray *)setupArrayData{       NSMutableArray *marry = [NSMutableArray array];       for (int i = 0; i<=30; i++) {               NSString *s = [NSString stringWithFormat:@"%@",@"data-test"];               [marry addObject:s];           }    return marry;}

 運行+——

 

- (void)viewDidLoad {       [super viewDidLoad];          while (true) {               //30.0定時執行               [NSThread sleepForTimeInterval:30.0];               NSDictionary *dict = [self setupDicData];               NSLog(@"%@",dict);        //每次數據內存都得不到釋放    }}

 

 
//按上代碼傳遞數組執行,每次數組、對象內存都得不到釋放。如圖:
內存會無線的往上增加,直至崩潰。
 
 

2.是什么原因導致這種內存得不到釋放的?  

 
主要是你在iOS里使用    while (true) {} 無線循環時,
iOS ARC默認認為你這個方法永遠沒有執行完,所以不會去主動釋放你方法里的對象,這一點和java不一樣,
所以很多JAVA開發者轉iOS后習慣性的使用while(true){}
導致項目里存在這種內存隱患,導致內存無限增加。

 

3.如何解決這種數組傳遞內存得不到釋放的情況?  

解決方法一:

3.1.最簡單最直接在ARC的環境下使用        @autoreleasepool {}  

 //@autoreleasepool {}的作用是在每次循環一次,都會把內存主動釋放掉  - (void)viewDidLoad {        [super viewDidLoad];            while (true) {               @autoreleasepool {            //30.0定時執行                        [NSThread sleepForTimeInterval:30.0];                        NSDictionary *dict = [self setupDicData];                        NSLog(@"%@",dict);            //每次數據內存都得不到釋放        }    }} 

 

 內存圖,我們發現很穩定,每次都會主動將內存釋放
 
 
解決方法二:

3.2.使用NSTimer來做數組傳遞的無限循環,ARC會自動幫你釋放內存  

- (void)usingDatadosomething{       //30.0定時執行       [NSThread sleepForTimeInterval:0.10];       NSDictionary *dict = [self setupDicData];       NSLog(@"%@",dict);    //每次數據內存都得不到釋放}- (void)viewDidLoad {       [super viewDidLoad];       [NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector(usingDatadosomething) userInfo:self repeats:YES];       [[NSRunLoop currentRunLoop] run];   }

 內存圖如下

 

解決方法三:

3.3.使用block封裝數組傳遞,最后做block的釋放,ARC會自動幫你釋放內存  

block使用較為頻繁,不在本文章闡述,下次會專門寫一篇block的博客。
謝謝大家,還有什么疑問可以評論中提出,我有時間會耐心回復!
 
 
作者: 清澈Saup
出處: http://www.49028c.com/qingche/
本文版權歸作者和博客園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接。

 

 

 

 

 

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影中文字幕一区| 欧美国产日韩一区二区三区| 国产精品h片在线播放| 91久久国产婷婷一区二区| 精品亚洲一区二区| 91精品久久久久久久久久久| 日韩影视在线观看| 亚洲sss综合天堂久久| 日韩中文字幕视频在线观看| 日韩风俗一区 二区| 欧美激情成人在线视频| 亚洲免费中文字幕| 欧美一区二区大胆人体摄影专业网站| 欧美成人一二三| 亚洲九九九在线观看| 中文字幕欧美精品在线| 少妇久久久久久| 成年人精品视频| 亚洲国产女人aaa毛片在线| 国产成人精品综合久久久| 97人洗澡人人免费公开视频碰碰碰| 欧美日韩国产中文字幕| 色午夜这里只有精品| 欧美成人在线影院| 亚洲精品国产成人| 日韩高清av一区二区三区| 九九热最新视频//这里只有精品| 亚洲第一网站免费视频| 亚洲色图18p| 最近2019年好看中文字幕视频| 成人在线视频福利| 欧美一区深夜视频| 国产午夜精品全部视频在线播放| 国产日韩在线亚洲字幕中文| 欧美电影免费观看高清完整| 色老头一区二区三区| 久久成人一区二区| 亚洲黄色www网站| 国产91色在线免费| 国产精品一区二区久久久| 2024亚洲男人天堂| 日韩69视频在线观看| 日本精品一区二区三区在线播放视频| 欧美在线一区二区三区四| 欧美日韩一区二区免费视频| 国产亚洲精品久久久久久| 91在线免费看网站| 久久亚洲精品网站| 91超碰中文字幕久久精品| 成人精品一区二区三区电影黑人| 日韩电影免费在线观看中文字幕| 国产69精品久久久久99| 91在线观看免费高清完整版在线观看| 日韩欧美在线免费观看| 国产丝袜高跟一区| 欧美日韩国产成人高清视频| 88国产精品欧美一区二区三区| 亚洲四色影视在线观看| 亚洲国语精品自产拍在线观看| 中文字幕免费国产精品| 永久免费毛片在线播放不卡| 国产精品一区二区三区在线播放| 日本久久久久久久久| 成人免费福利在线| 在线观看日韩视频| 中国人与牲禽动交精品| 欧美精品免费在线观看| 国产一区二区三区在线| 久久韩剧网电视剧| 亚洲v日韩v综合v精品v| 亚洲精品美女久久| 久久亚洲精品国产亚洲老地址| 国外成人在线直播| 日韩在线视频免费观看| 8090理伦午夜在线电影| 欧美小视频在线观看| 亚洲天堂网站在线观看视频| 中文字幕视频一区二区在线有码| 日本久久久久久久| 久久韩剧网电视剧| 国产小视频国产精品| 欧美日韩高清区| 欧美人交a欧美精品| 色一情一乱一区二区| 在线观看不卡av| 免费不卡欧美自拍视频| 欧美成人国产va精品日本一级| 久久成人这里只有精品| 国产日韩欧美夫妻视频在线观看| 精品久久久久久久久久久久久| 久久精品国产亚洲| 亚洲天堂2020| 2025国产精品视频| 国产精品一区二区三| 亚洲精品aⅴ中文字幕乱码| 国产精品视频区1| 欧美日韩电影在线观看| 奇米4444一区二区三区| 精品国产一区av| 成人免费在线视频网站| 国产va免费精品高清在线观看| 深夜精品寂寞黄网站在线观看| 在线播放国产一区中文字幕剧情欧美| 久久中国妇女中文字幕| 欧美黑人一级爽快片淫片高清| 亚洲精品国产精品国自产在线| 中文字幕久热精品视频在线| 亚洲精品网址在线观看| 日韩欧美在线免费观看| 亚洲成人激情小说| 色婷婷av一区二区三区在线观看| 欧美精品国产精品日韩精品| 欧美精品日韩www.p站| 精品中文字幕视频| 国产精品揄拍500视频| 欧美大片免费观看| 久久久久久国产精品久久| 最近2019年好看中文字幕视频| 亚洲成av人乱码色午夜| 91国产在线精品| 亚洲国产另类 国产精品国产免费| 中文字幕视频一区二区在线有码| 亚洲精品一区中文| 亚洲人成网7777777国产| 麻豆乱码国产一区二区三区| 国产欧美日韩丝袜精品一区| 5566成人精品视频免费| 午夜精品免费视频| 亚洲天堂第二页| 久久久久久国产免费| 欧美激情一二三| 欧美在线影院在线视频| 亚洲欧美制服第一页| 欧美国产日韩一区| 亚洲精品国精品久久99热一| 欧美猛男性生活免费| 欧美精品videossex88| 久久久人成影片一区二区三区观看| 亚洲在线观看视频网站| 欧美精品国产精品日韩精品| 亚洲黄色有码视频| 亚洲成年人在线播放| 亚洲一区二区久久| 亚洲国产一区自拍| 国产日产久久高清欧美一区| 亚洲女人天堂色在线7777| 国产极品精品在线观看| 国外成人免费在线播放| 91久久精品视频| 国产日韩av在线播放| 在线一区二区日韩| 91国产精品电影| 色综合久久中文字幕综合网小说| 国产区精品在线观看| 久久成人一区二区| 国产精品成人国产乱一区| 视频在线观看一区二区| 91精品视频免费观看| 精品国产一区二区三区久久| 91精品在线影院| 久久中文字幕国产| 欧美电影在线播放| 欧美激情视频在线免费观看 欧美视频免费一| 日韩欧美成人区|