gpt4 book ai didi

objective-c - 在 ARC 和 cocos2d 中进行桥接

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

我正在通过一些书籍学习 cocos2d,即 Pablo Ruiz 的书,这里是一些代码:

[next runAction:[CCSequence actions:[CCDelayTime
actionWithDuration:2],
[CCFadeIn actionWithDuration:1],
[CCDelayTime actionWithDuration:2],
[CCCallFuncND actionWithTarget:self selector:@selector(cFadeAndShow:data:)
data:images],nil]];


- (void) cFadeAndShow: (id)sender data:(void*) data
{
NSMutableArray *images = data;
[self fadeAndShow:images];

}

它给了我一个错误显示在 data:images in runAction:

Implicit conversion of Objective-C pointer type 'NSMutableArray *' to C pointer type 'void *' requires a bridged cast

我试过修复它无济于事。我应该怎么办?我尝试将 void* 更改为 NSMutableArray,但仍然没有帮助。我该如何桥接?我尝试使用 __bridge 但它说你不能桥接转换 NSMutableArray。

最佳答案

尝试替换此调用:

[CCCallFuncND actionWithTarget:self selector:@selector(cFadeAndShow:data:) data:images],nil]];

用这个:

[CCCallFuncND actionWithTarget:self selector:@selector(cFadeAndShow:data:) data:(__bridge void*)images],nil]];

然后在您的 fade and show 方法中,将其转换回一个 id:

NSMutableArray *images = (__bridge id) data;

关于objective-c - 在 ARC 和 cocos2d 中进行桥接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641607/

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