gpt4 book ai didi

iOS。将 block 作为参数传递到 block

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:56 27 4
gpt4 key购买 nike

我正在四处走动并尝试发现它们的使用方式。所以我想知道是否可以像参数一样将 block 传递给 block ?

下面是一些示例代码:



//声明
静态 id (^someBlock)(id) = ^(id someClass) {
//做一些事情来获得类一些类实例
//检查类实例是否响应@selector
//如果是 - 执行选择器
}

//用法
+ (instancetype)someMethod {
一些 block (SomeClass.class);
//做额外的工作并返回一些实例类型
}

这工作正常,但还不够好,因为如果调用者想在 someBlock 完成时做一些额外的事情,我们要求调用者响应选择器。

所以我的问题是如何调用带有参数 block 的 someBlock block ,我希望在 someBlock 完成时执行它。

有些像:



//声明
static id (^someBlock)(id, ^otherBlock) = ^(id someClass, ????) {
//做一些事情来获得类一些类实例
其他 block ();
}

有什么建议吗?

PS:请注意问题不是关于将 block 作为参数传递给方法。

谢谢,维内林

最佳答案

这是您要找的吗?

static id (^someBlock)(id, void (^otherBlock)()) = ^id (id someClass, void (^otherBlock)()) {
otherBlock();
return nil; // just because you declares a `id` return type
};

并称它为

someBlock(someClass, ^() {
NSLog(@"other stuff");
});

关于iOS。将 block 作为参数传递到 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573910/

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