以下会产生强大的参考周期吗?我有一种感觉是因为我在回调中引用了self
。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:^{
UIImage *image = [self cropImageWithInfo:info];
if (currentScreen == CurrentScreenApartment) {
[self.profileViewModel.apartmentPhotos addObject:[RuntimePhoto runtimePhotoWithImage:image]];
}
else {
[self.profileViewModel.userPhotos addObject:[RuntimePhoto runtimePhotoWithImage:image]];
}
dispatch_async(dispatch_get_main_queue(), ^{
[self reloadPhotosCell];
});
}];
}
您可以使用自我的弱变量:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
typeof(self) __weak weakSelf = self;
[picker dismissViewControllerAnimated:YES completion:^{
UIImage *image = [weakSelf cropImageWithInfo:info];
if (currentScreen == CurrentScreenApartment) {
[weakSelf.profileViewModel.apartmentPhotos addObject:[RuntimePhoto runtimePhotoWithImage:image]];
}
else {
[weakSelf.profileViewModel.userPhotos addObject:[RuntimePhoto runtimePhotoWithImage:image]];
}
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf reloadPhotosCell];
});
}];
}