ARC看起来很不错,但有一个或两个边缘的情况下,典型的命名惯例/规则不明确地告诉我。看看周围NSThread以下类别执行:ARC是否处理这种情况而不泄漏?如果是这样,怎么样?
@interface NSThread (BlockAdditions)
- (void)performBlock:(dispatch_block_t)block;
@end
@implementation NSThread (BlockAdditions)
- (void)internal_performBlock:(dispatch_block_t)block
{
block();
}
- (void)performBlock:(dispatch_block_t)block
{
[self performSelector:@selector(internal_performBlock:)
onThread:self
withObject:[block copy]
waitUntilDone:NO];
}
我的问题是:调用-copy
后block
泄漏?编译器如何知道何时释放该块?仪器没有检测到泄漏,但是根据我对ARC的了解,这并不能说服我,这种情况得到正确处理。感谢您的任何信息!
使用绝对之外很好的解释保留计数..... – bbum