Я некоторое время боролся с этой проблемой, так как не думаю, что полностью понимаю циклы сохранения. Я совершенно новичок в этом, и я пытаюсь узнать больше об этом.EXC_BAD_ACCESS при использовании weakSelf в блоке/блоках
Я получаю сообщение EXC_BAD_ACCESS со следующим кодом.
Я начал использовать weakSelf, потому что получаю 2 предупреждения об удержании цикла, если я просто использую self.successBLock() ;. Точное предупреждение:
Capturing 'self' strongly in this block is likely to lead to a retain cycle
Возможно, я не должен даже беспокоиться об использовании слабых, но я не уверен в этом.
Это та часть, где я использовать weakSelf в блоке:
__weak Request *weakSelf = self;
[_operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
weakSelf.successBlock(operation.response, responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
weakSelf.failureBlock(operation.response, error);
}];
Это, как я назначить свойство блока:
typedef void (^successBlock)(NSHTTPURLResponse *response, id responseObject);
typedef void (^failureBlock)(NSHTTPURLResponse *response, NSError *error);
@property (nonatomic, copy) successBlock successBlock;
@property (nonatomic, copy) failureBlock failureBlock;
В какой именно строке вы принимаете ошибку. –
На этих двух строках: weakSelf.successBlock (операция. Ответ, responseObject); слабыйSelf.failureBlock (работа. Ответ, ошибка); – Nipje