簡體   English   中英

是否會部分使用對象導致內存泄漏?

[英]Does partially used object cause memory leak?

我准備了一個用於存儲從db檢索到的數據的類,假設我有10個var。 如果我將此類用於不同的視圖,並且每個視圖將使用不同數量的變量,該怎么辦?

tableViewCell將彈出3個變量。 View1將彈出6個變量。 View2將彈出10個變量。

未使用的數據會導致內存泄漏嗎?

僅當在釋放內存之前刪除所有指向該內存的指針時,才會發生內存泄漏。 如果重用數據結構,則可能會有一些未使用的內存,但是除非指針消失后再也不釋放它,否則它不會泄漏(從而使您無法再次釋放它)。

未使用的變量與內存泄漏無關。 您想看到內存泄漏嗎?

- (void)leakABunchOfMemory {
    for (int i = 0; i < 1000000000; i++) {
        NSMutableString *usedButNotUsedCorrectly = [[NSMutableString alloc] initWithFormat:@"%d", i];
    }
}

那是內存泄漏。 每個[NSMutableString alloc]都會創建一個對象,並且永遠不會銷毀任何對象,因為一旦循環迭代結束,您就失去對它們的引用。 它們只是繼續存在並占用空間,就像渴望活生生的RAM的基於文本的僵屍一樣。 為避免在Objective-C代碼中泄漏,請遵循內存管理規則以及您使用的任何其他庫的等效規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM