簡體   English   中英

Objective-C塊是否已自動釋放?

[英]Are Objective-C blocks autoreleased?

如果我聲明像這樣的塊^{ DoSomething; } ^{ DoSomething; }並把它放在一個實例變量,我需要Block_copy()如果我要保持它的周圍?

是的,你需要復制。 不是因為它們是自動釋放的,而是因為它們從堆棧開始。 請注意,塊的行為也類似於常規的Objective-C對象,因此您可以使用常規copy消息復制它們:

void storeBlockForLater: (dispatch_block_t) block
{
    [someArray addObject:[[block copy] autorelease]];
}

或者,如果您有塊屬性:

@property(copy) dispatch_block_t block;

保留在這里沒有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM