gpt4 book ai didi

objective-c - 调用 super block /扩展 block

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:24 24 4
gpt4 key购买 nike

我已经子类化了一个类,它拥有一个 block 属性,我需要扩展。

父类(super class)的属性:

@property (nonatomic, copy) id (^willMapDeserializedResponseBlock)(id deserializedResponseBody);

每次设置此 block 时,我都需要通过我自己的代码/ block 来扩展该 block 。

基本上这是我想在我的子类中做的:

[self setWillMapDeserializedResponseBlock:^id(id deserializedResponseBody) {

// original block

// do my own stuff

return deserializedResponseBody;
}];

如何实现这样的功能?我找到了一个 answer一个类似的问题,但它没有帮助我,可能是因为 block 的返回值?

最佳答案

不,您不能将代码添加到现有 block ,但您可以轻松地根据您链接的问题调整解决方案:

- (void)setWillMapDeserializedResponseBlock:(id(^)(id))willMapDeserializedResponseBlock
{
id (^additionalCode)(id, id) = ^id (id deserializedResponseBody, id originalReturnVal){
// Do your own stuff
return whatever;
};

id (^newWillMapBlock)(id) = ^id (id deserializedResponseBody){
id retVal = willMapDeserializedResponseBlock(deserializedResponseBody);
return additionalCode(deserializedResponseBody, retVal);
};

_willMapDeserializedResponseBlock = newWillMapBlock;
}

关于objective-c - 调用 super block /扩展 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075682/

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