[英]Confusion in memory management in Objective-C?
我了解了Objective-C中的手動和ARC內存管理。 在以下幾點,我很困惑,關於Objective-C中的內存管理,這是真的嗎?
始終取消ARC和手動內存管理下的dealloc中的屬性。
不必取消ARC和手動內存管理下的dealloc中的屬性。
在ARC下的dealloc中取消屬性,但在手動內存管理中不取消。
您無需“淘汰”屬性,而在執行手動內存管理時只需釋放它們。
當您將值設置為nil時,您會丟失那里的舊值。 該舊值存儲了對象的地址。 現在該對象繼續存在,但是您不再知道其地址,也無法釋放它。
Release告訴對象“我不再使用您,如果我是最后一個,請刪除自己”。 在ARC中,保留和釋放調用由編譯器自動添加。 幾乎沒有理由再自己進行手動內存管理了。 ARC是必經之路。
在大多數情況下,沒有太多理由使用手動內存管理了。
但是要回答您的問題,請不要取消分配。 代替:
[myObject release];
只需使用ARC和快樂的日子!
但是,您至少應該了解強引用和弱引用之間的區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.