在我的课堂上,我创建了这个方法。
-(void) refreshDatasourceWithSuccess:(CreateDataSourceSuccessBlock) successBlock
failure:(CreateDataSourceFailureBlock) failureBlock;
然后我这样称呼它:
[self refreshDatasourceWithSuccess:^(NSArray* array){
//Success block
[self setDataSource:array];
[self.tableView reloadData];
} failure:^(NSError* error){
// failure block
[self showConnnectionError];
}];
这是一个保留周期,因为我self
在完成块内引用了吗?(我没有收到任何警告)
更新:
在这种情况下的另一个类中,我收到保留周期的警告
typedef void (^SetFavoriteCompletionBlock)(NSError*);
-(void)setFavoriteFriend:(BOOL)pSetFavorite
completion:(SetFavoriteCompletionBlock)completionBlock
{
//....
completionBlock(error);
}
然后在这个电话中我收到警告
[self setFavoriteFriend:setFavorite
completion:^(NSError *error){
[self.tableView reloadData];
}];