[英]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.