我正在添加一些TObject
後代到TStringList
,例如通過調用AddObject
。當我釋放列表對象時,我希望它們被釋放。有什麼辦法可以做到這一點?TStringList是否可以自動釋放附加到其項目的對象?
8
A
回答
14
TStringList
的OwnsObjects
屬性應設置爲True
,以便清單在銷燬時釋放其對象。這可以通過調用constructor overload that receives the OwnsObjects
parameter或創建後明確設置屬性來實現。最好將OwnsObjects
設置爲對象構造的一部分。
的documentation介紹屬性是這樣的:
的OwnsObjects屬性指定字符串列表是否擁有存儲的對象與否。如果OwnsObjects屬性設置爲True,那麼Destroy析構函數將釋放爲這些對象分配的內存。
相關問題
- 1. 是否可以將對象添加到特定的自動釋放池?
- 2. [自動釋放]是否可以接受?
- 3. 我可以添加對象字段到SPItem,附加某種對象到項目?
- 4. 釋放或自動釋放的對象
- 5. 屬性可以保留一個自動釋放的對象?
- 6. 以後自動釋放或釋放是否更好?
- 7. 是否NSArray:lastObject返回一個自動釋放對象?
- 8. 我是否需要保留自動釋放對象?
- 9. NSStringFromCGPoint是否返回一個自動釋放對象?
- 10. 在對象類的方法中釋放對象是否可以接受
- 11. 附加到新對象的Java註釋?
- 12. 是否可以在PostgreSQL中自動釋放鎖定?
- 13. 自動釋放對象的生存期
- 14. 是否可以自動添加圖像到本地文件夾的項目?
- 15. WINAPI會自動釋放附加到控件的內存嗎?
- 16. 實體框架4:是否自動附加對象?
- 17. 是否可以釋放UIWebView的內存?
- 18. 是否可以將文件上傳到其他項目目錄?
- 19. 什麼時候釋放了一個自動釋放的對象?
- 20. 釋放自動釋放的字符串對象不會崩潰
- 21. 是否可以自定義buildSrc項目?
- 22. 測試對象是否已釋放
- 23. 我是否需要釋放此對象?
- 24. 我是否正確釋放對象?
- 25. 是否需要釋放該對象?
- 26. 我是否需要釋放UITouch對象?
- 27. 是否可以將.NET System.Diagnostics.Process對象附加到正在運行的進程?
- 28. iPhone,內存/自動釋放對象
- 29. 重新分配自動釋放對象
- 30. iphone:多次自動釋放對象
這是一個http://stackoverflow.com/questions/9148659/how-to-free-objects-in-stringlist-in-delphi-7的副本,但這個問題寫得不好。這就是阻止我投票結束的愚蠢行爲。 – 2013-02-18 12:59:22
@iMan我從問題中刪除了代碼。這個問題沒有太多的意義,因爲它幾乎可以回答這個問題。如果您回答自己的問題,最好將答案保留在答案中。在任何情況下,不需要實現細節,只需參考文檔即可,正如我在編輯答案時所做的那樣。 – 2013-02-18 13:12:57
@DavidHeffernan其實我在寫這個問題的時候找到了答案,並且認爲在這裏寫它可以節省其他人幾分鐘 – 2013-02-18 16:39:43