gpt4 book ai didi

c++ - 将 Objective C "code blocks"转换为 C++ 中的等价物

转载 作者:太空狗 更新时间:2023-10-29 21:25:21 24 4
gpt4 key购买 nike

我需要帮助将一些 Objective C“代码块”方法转换为 C++ 中的等效方法。请指教。

A 被用作代码块...

.h 文件中定义..

typedef void (^A)(void*); //argument is ptr to B

在一个 .mm 文件中使用..

[[hello getInstance] getB]->queueLoadImageWithBlock([self.str UTF8String], (A

)^(无效* img) { //一些代码...

            });

最佳答案

最直接的类比是std::function .这是一个具有签名的值类型(例如 std::function<int(int)>,可以是具有适当签名的任何函数对象。可以使用 lambda 代替调用站点的 block 。

obj->queueLoadImageWithBlock(self.url, [](void* img)
{
UIImage* img2 = (UIImage*)img;
UIImageView* iv = [[UIImageView alloc] initWithImage:img2];
iv.backgroundColor = [UIColor clearColor];
[self.iconSlot addSubview:iv];
iconLoaded(iv);
[iv release];
});

关于c++ - 将 Objective C "code blocks"转换为 C++ 中的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147993/

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