2012-03-15 145 views
0

可能重複:
Difference between retain and copy?iOS和內存管理

我學習iOS開發,現在,我不明白的內存管理非常好, 我已閱讀在蘋果開發中心指導高級內存管理編程指南,但仍然有疑問。我想知道的最重要的問題是:當定義一個類的屬性時,copyretain之間有什麼區別?謝謝!

+0

您可能想重新閱讀指導原則。保留和複製之間的差異是非常有據可查的。 – 2012-03-15 11:34:51

+0

嗨,我不給你的答案bcoz mattjgalloway已經給出了一個鏈接。我正在爲您提供我的項目負責人處理內存管理的鏈接。看到[this](http://iphone2020.wordpress.com/2010/05/30/efficient-memory-handling-in-uiviewcontroller-part-1/)和[this one](http://iphone2020.wordpress。 COM/2010/05/30 /高效-內存處理功能於UIViewController中部分-2 /) – 2012-03-15 11:54:39

回答

1

對此,有一千個答案!然而,首先需要了解的是,當你定義一個@property時,你嚮應用程序的編譯器發出一個指令,並且retain/copy(和你在括號中看到的所有其他東西)是編譯器關於如何遵循指令。

@property本質上是指 - 請編譯器先生,使我一些accessor方法(getters & setters)。

因此,retain & copy是編譯器的指令,告訴它如何在這些getter/setter訪問器內進行操作。

copy意思是 - 當我說[myClass setMyProperty:propertyReference] - 我想讓這個班級製作一個屬性的副本。屬性的完整新實例。因此,課堂內的副本不會受到課堂以外的外部詭計的影響。

retain意思是 - 我希望班級記住我設置的屬性的確切實例。根本不是新實例。在這種情況下,當該實例發生更改時,您的班級將知道該資源的最新狀態。