由于我不认为我完全理解保留周期,所以我一直在为这个问题而苦苦挣扎。我对这个完全陌生,我想了解更多信息。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