假设以下代码是在 ARC 下编写的:
问题:当将块分配给实例变量时,它是否自动复制到堆上? 我之前的问题暗示了通过
typedef void (^MyResponseHandler) (NSError *error);
@interface MyClass : NSObject
{
MyResponseHandler _ivarResponseHandler;
}
- (void)myMethod:(MyResponseHandler)responseHandler
{
_ivarResponseHandler = responseHandler;
...
}
问题:当将块分配给实例变量时,它是否自动复制到堆上? 我之前的问题暗示了通过
@property
分配时会被复制。但是,今天我使用了上面的代码并收到了一个EXC_BAD_ACCESS
,通过更改为_ivarResponseHandler = [responseHandler copy]
修复了该问题。
@property(copy)
中。 - bearMountain