2014-01-17 30 views
2

關於「塊將被複制」的簡單問題「我對Objective-C中塊的理解和使用並不是很滿意,」複製「是什麼意思?如果有人能解釋或指向我可以的資源,我將不勝感激。謝謝CCMenuItemLabel - 「塊將被'複製'。」

*此方法來自Cocos2d文檔。

+ (id) itemWithLabel:(CCNode< CCLabelProtocol, CCRGBAProtocol > *) label 
block:(id sender) block 

創建一個帶有標籤和要執行的塊的CCMenuItemLabel。該塊將被「複製」。

+0

該塊被髮送「複製」消息,允許原始塊對象分別釋放以便被其他項使用塊重新分配 – LearnCocos2D

回答

2

塊類似於結構,它包含一組信息,如指向該函數的指針。 默認情況下,當您創建一個塊時,它在堆棧上創建,您必須將其複製到堆以便能夠在堆棧外使用它。 在這個例子中,這個方法將返回一個item對象,並會將block參數(可能仍然在堆棧中)複製到Heap中,以便在需要時使用它。