2012-06-22 78 views
0

能否請你澄清蘋果文檔的這一部分:Transitioning to ARC Release Notes - Frequently Asked Questions傳遞塊上下堆疊在ARC

如何塊ARC工作?

當您在ARC模式下傳遞堆棧上的塊時,如「返回」,塊「正常工作」。您無需致電 Block Copy。在將堆棧中的「下」 傳遞給arrayWithObjects:和其他方法時,您仍然需要使用[^ {} copy] 保留。

什麼是傳遞塊的上下堆棧?這是否意味着我將不得不復制從MRC中的函數或方法返回的塊,但在ARC中我不需要?

回答

1

什麼是傳遞塊的上下堆棧?

它們表示將塊作爲參數傳遞給另一個方法(或函數),並返回一個作爲方法(或函數)結果的塊。

這是否意味着我將不得不復制塊我從一個函數返回或 方法在MRC但在ARC我不必?

我認爲是對的。

+0

奇怪的是,當我試圖想象調用堆棧時,我調用的函數/方法在之前調用的頂層是「分層的」,所以返回塊的函數/方法會將它傳遞給**下來**如報價所暗示的那樣,堆疊不能堆疊。我應該把它翻過來看看它的方式嗎? –

+1

我認爲**下**會意味着**更深**。 – Johnnywho

+1

在大多數包含iOS的系統中,堆棧在內存中向下增長。也就是說,當你將兩個值推入堆棧時,推入的第一個地址會比第二個地址的地址高。當一個值被壓入時,堆棧指針遞減,當一個值從堆棧彈出時,堆棧指針遞增。所以,你稱之爲「失望」,然後返回「起來」。 – Caleb