В ARC автоматически ли копируются блоки, когда они напрямую назначаются ивару?

Предположим, следующий код в ARC,

typedef void (^MyResponseHandler) (NSError *error);
@interface MyClass : NSObject
{
    MyResponseHandler _ivarResponseHandler;
}

- (void)myMethod:(MyResponseHandler)responseHandler
{
    _ivarResponseHandler = responseHandler;
   ...
}

Вопрос :Блок автоматически копируется в кучу при назначении ivar?

Мой предыдущий вопрос подразумевал, что он копируется при назначении через @property. Но сегодня я использовал приведенный выше код и получил EXC_BAD_ACCESS, который был исправлен путем изменения на

_ivarResponseHandler = [responseHandler copy].

20
задан Community 23 May 2017 в 12:13
поделиться