【发布时间】:2012-05-04 17:11:36
【问题描述】:
假设ARC下的代码如下,
typedef void (^MyResponseHandler) (NSError *error);
@interface MyClass : NSObject
{
MyResponseHandler _ivarResponseHandler;
}
- (void)myMethod:(MyResponseHandler)responseHandler
{
_ivarResponseHandler = responseHandler;
...
}
问题:block 分配给 ivar 时是否会自动复制到堆中?
My previous question 暗示它在通过@property 分配时被复制。但是,今天我使用上面的代码并收到了一个EXC_BAD_ACCESS,通过更改为
_ivarResponseHandler = [responseHandler copy].
【问题讨论】:
标签: objective-c automatic-ref-counting objective-c-blocks ivar