gpt4 book ai didi

ios - 使用另一个函数的完成 block

转载 作者:行者123 更新时间:2023-11-28 19:44:20 24 4
gpt4 key购买 nike

我有一个带有委托(delegate)方法的图像裁剪函数,该方法返回裁剪后的图像和 CGRect。如何在另一个函数中的自定义完成 block 中返回它?

有没有办法引用那个 block ,以便我可以在另一个函数中使用它?

很难解释,但这是我的代码:

- (void)cropImage:(UIImage *)image type:(NSInteger)type target:(id)target complete:(cropComplete)complete {
CGFloat ratio;
switch (type) {
case 1:
//16:9
ratio = 16/9.0;
break;
case 2:
//4:3
ratio = 4/3.0;
break;
case 3:
//1:1
ratio = 1;
break;

default:
break;
}
ImageCropViewController *vc = [ImageCropViewController new];
vc.delegate = self;
vc.imageToCrop = image;
vc.ratio = ratio;
UIViewController *targetVC = (UIViewController *)target;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
[targetVC presentViewController:nav animated:YES completion:nil];
}

//this is the delegate from ImageCropViewController above
- (void)doneCropping:(UIImage *)croppedImage rect:(CGRect)rect {
(I want the image and CGRect here to return in the ^cropComplete block above)
}

最佳答案

将您稍后要调用的 block 类型的新属性 (^(cropComplete)) 添加到您的类中。

cropImage:type:target:complete: 函数中将 block 保存到您的属性中:

self.myNewBlockProperty = complete;

并在 doneCropping:rect 中调用该属性。

您无法在其他函数中访问“完整”参数,但您可以将其保存在另一个变量/属性中,并且可以毫无问题地访问它。

关于ios - 使用另一个函数的完成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33036438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com