由於我不認爲我完全理解保留週期,所以我一直在爲這個問題而苦苦掙扎。我對這個完全陌生,我想了解更多信息。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;
你得到的錯誤確切的線。 – 2013-05-08 13:59:19
關於這兩行: weakSelf.successBlock(operation.response,responseObject); weakSelf.failureBlock(operation.response,error); – Nipje 2013-05-08 14:02:38