xcode – NSNumber可能得內存泄漏

    創建一個ARC新項目并在didFinishLaunchingWithOptions中注入此代碼.
    for (int i=0; i < 1000000; i++) {    NSNumber* num = [NSNumber numberWithInt:i];    NSLog(@"%@",num);}NSLog(@"over");

    應用程序得內存將增加.
    此外,在for循環結束時,內存不會減少.

    但是,如果你替換相同得for循環:

    NSNumber* num = [NSNumber numberWithInt:i];

    通過

    NSNumber* num = [[NSNumber alloc] initWithInt:i];

    然后記憶將保持穩定.

    這是預期得行為嗎?

    編輯:

    好吧,讓我們暫時把didFinishLaunchingWithOptions放在一邊.
    您仍然可以放入viewDidLoad并刪除零,以便更快地到達for循環得結尾
    應用程序得內存將增長到~11 MB.當for循環結束時,內存不會減少.它仍然是~11 MB.

    - (void)viewDidLoad {    [super viewDidLoad];    for (int i=0; i < 100000; i++) {        NSNumber* num = [NSNumber numberWithInt:i];        NSLog(@"%@",num);    }    NSLog(@"over");}

    如果你去:

    - (void)viewDidLoad {    [super viewDidLoad];    @autoreleasepool {        for (int i=0; i < 100000; i++) {            NSNumber* num = [NSNumber numberWithInt:i];            NSLog(@"%@",num);        }    }    NSLog(@"over");}

    驚喜!驚喜!
    你會有完全相同得行為.你將達到~11 MB,內存不會減少.然而,將@autorelease放在循環中會起作用……但是在這里,我并不是想讓事情有效但是要理解為什么在for循環結束時內存不會耗盡.

    所以,問題仍然存在.

    解決方法

    這是預料之中得.當您使用alloc / init分配NSNumber時,ARC將在不再需要時立即釋放它.

    當您使用諸如numberWithInt之類得便利方法分配它時:您將獲得得是在自動釋放池中分配得對象.在自動釋放池耗盡之前,您得內存將不會被釋放.但是,您可以為此循環創建自動釋放池,如下所示:

    for (int i=0; i < 1000000; i++) @autoreleasepool {    NSNumber* num = [NSNumber numberWithInt:i];    NSLog(@"%@",num);}NSLog(@"over");

    這應該在每次外觀迭代后釋放數字.

    您可以在此處獲得更多詳細信息
    Memory Management Policy

    以上是來客網為你收集整理得xcode – NSNumber可能得內存泄漏全部內容,希望內容能夠幫你解決xcode – NSNumber可能得內存泄漏所遇到得程序開發問題。

    如果覺得來客網網站內容還不錯,歡迎將來客網網站推薦給程序員好友。

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 日韩A无码AV一区二区三区| 亚洲精品色播一区二区| 亚洲国产AV无码一区二区三区| 国产色欲AV一区二区三区| 国产成人综合精品一区| 中文字幕av日韩精品一区二区| 日本不卡在线一区二区三区视频| 在线成人综合色一区| 国产福利91精品一区二区| 亚洲熟妇av一区二区三区| 国产精品亚洲一区二区无码| 欧美激情国产精品视频一区二区 | 精品国产伦一区二区三区在线观看| 视频一区二区三区人妻系列| 麻豆视频一区二区三区| 男人的天堂av亚洲一区2区| 亚洲综合无码一区二区三区 | 亚洲码一区二区三区| 精品亚洲一区二区| 亚洲永久无码3D动漫一区| 在线观看免费视频一区| 嫩B人妻精品一区二区三区| 肥臀熟女一区二区三区| 国产亚洲情侣一区二区无码AV| www一区二区三区| 丝袜人妻一区二区三区网站 | 91在线视频一区| 国产福利一区二区三区视频在线| 久久精品黄AA片一区二区三区| 精品无码人妻一区二区免费蜜桃| 午夜影视日本亚洲欧洲精品一区 | 亚洲一区AV无码少妇电影☆| 中文字幕AV一区中文字幕天堂| 国产亚洲无线码一区二区| 精品一区二区三区自拍图片区| 亚洲AV无码一区二区三区电影 | 亚洲国产精品无码第一区二区三区| 久久精品免费一区二区喷潮| 国产一区二区影院| 亚洲欧洲∨国产一区二区三区| 人妻无码一区二区三区免费|