memory-management

    1熱度

    1回答

    就像Apple所說的,dataFromPropertyList:format:errorDescription:方法不遵循對象所有權策略。方法參考描述了它。我試圖搜索「需要由調用者發佈」,但沒有有用的結果。 下面是參考報價: 特別注意事項不像 可可 正常的內存管理規則,在Errorstring,則 返回的字符串需要由調用者釋放。 我幾乎可以肯定,這不是唯一的情況下,這種政策的例外發生。

    1熱度

    2回答

    蘋果在setter方法是這樣做的一個實例變量mainSprocket: – (void)setMainSprocket:(Sprocket *)newSprocket { [mainSprocket autorelease]; mainSprocket = [newSprocket retain]; return; } 他們爲什麼要送-autorelease而不

    1熱度

    3回答

    我有一個UITableView的實例,以及一個遵守委託和數據源協議的獨立類。我這樣做,像這樣: SubjectTableViewHandler *handler = [[[SubjectTableViewHandler alloc] init] retain]; tv.delegate = handler; tv.dataSource = handler; [handler autorele

    10熱度

    4回答

    有兩個對象A和B.A創建B並保留它。 B有一個指向A的實例變量,保留它。所以兩個都保留彼此。有人說,這種強大的聯繫不能再一次被打破。 但是,真的是這樣嗎? 如果B會釋放A,那麼A可以輕鬆釋放B,因此B將被釋放。一旦它是其他所有者(我想必須有人)釋放它,它就會被釋放。 或者,這個問題只適用於A沒有創建B的情況,但只是通過將它保留在實例變量中而強制引用它?我仍然不明白爲什麼這個連接不能再被打破。

    1熱度

    1回答

    我想從.Net控制檯應用程序附加到另一個進程並探索數據區域。具體而言,我想附加到Windows Vista中的「蜘蛛紙牌」應用程序,因爲我有興趣瞭解它在所有情況下都能解決的問題。 這是可能的,如果是的話,我應該看哪些API? 這是一個「只爲樂趣」的項目,所以我可以擴展我的知識。 瑞安

    2熱度

    5回答

    我有一項服務負責收集不斷更新的網絡數據流。意圖是整個數據集必須隨時可用(只讀)。這意味着到達最早的最新數據消息應該可以被客戶端代碼訪問。 當前的計劃是在Windows上使用內存映射文件。主要是因爲數據集非常龐大,跨越數十個GiB。無法知道需要哪部分數據,但在需要時,客戶可能需要隨意跳轉。 內存映射文件符合法案。不過,我已經看到它說(書面),他們是最好的數據集已被定義,而不是不斷變化。這是真的?我上

    1熱度

    4回答

    我想知道如果autorelease池擁有對它擁有的對象的強或弱引用。我猜他們很弱。當我將一個對象添加到自動釋放池時,它不會立即釋放,但會在池被耗盡時釋放,對吧?所以引用應該很弱,即當我將一個對象添加到自動釋放池時引用計數(或保留計數)保持不變?

    0熱度

    3回答

    我想知道有多少,以及它們在哪裏。正如我在斯坦福大學Vid中看到的,在iPhone應用程序的事件循環中安裝了一個自動釋放池。但是我想我錯過了那個地方呢?還有其他我應該知道的autorelease池嗎?

    2熱度

    3回答

    的醫生說: 在一個垃圾收集的環境中, 發送漏消息一池 觸發垃圾收集,如果 必要的;然而,發佈是 無操作。在參考計數的 環境中,排放與發佈具有相同的效果 。因此,通常情況下,您應該使用排水管而不是釋放管道。 如果我明白了,他們會說我應該總是使用-drain,如果周圍有垃圾收集或引用計數,則無關緊要。在iPhone上沒有GC,所以無論如何我發送-Drain? 不幸的是,該文檔只談論可可,而不是可可觸摸

    2熱度

    2回答

    我已經看了Conservative GC Algorithmic Overview 在「標識」部分誤檢測可能發生? 如果存儲了一些數據,並且恰巧碰巧與分配的內存地址相同,收集器是否會保留內存?