一区二区日本_久久久久久久国产精品_无码国模国产在线观看_久久99深爱久久99精品_亚洲一区二区三区四区五区午夜_日本在线观看一区二区

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 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 精品av| 伊人电影院av | www.av在线 | 91久久久久久久久久久久久 | 亚洲手机视频在线 | 99热精品在线观看 | 国产欧美精品一区二区 | a级在线| 日韩在线免费看 | 伊人网99| 日韩无| 国产乱精品一区二区三区 | 免费一区 | 日韩精品一区二区三区 | 一区二区精品在线 | 成av人电影在线 | 国产一区三区在线 | 亚洲精品一区二 | 亚洲国产一区二区视频 | 成人在线看片 | 国产亚洲精品精品国产亚洲综合 | 久草网站| 成年人免费在线视频 | 久久一热 | 成人视屏在线观看 | 午夜色婷婷 | 精品国产三级 | 日本特黄a级高清免费大片 特黄色一级毛片 | 欧美一区免费 | 91在线精品一区二区 | 日本亚洲精品成人欧美一区 | 免费看一区二区三区 | 日本精品在线观看 | 日韩免费毛片 | 成年人免费网站 | 成人精品一区二区三区中文字幕 | 欧美一级特黄aaa大片在线观看 | 亚洲狠狠 | av夜夜操| 日韩在线综合网 | 日韩欧美一区二区三区 |