我一直在为这个问题苦苦挣扎,因为我认为我不完全理解保留周期。我对此完全陌生,我正在尝试更多地了解它。
我收到带有以下代码的 EXC_BAD_ACCESS 消息。
我开始使用weakSelf,因为如果我只使用self.successBLock(); 就会收到2 个关于保留周期的警告。确切的警告是:
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;