Objective c 弧形和cocos2d桥接铸造

Objective c 弧形和cocos2d桥接铸造,objective-c,ios,cocos2d-iphone,automatic-ref-counting,Objective C,Ios,Cocos2d Iphone,Automatic Ref Counting,我正在通过一些书学习CoCo2D,即Pablo Ruiz的书,这里有一些代码: [next runAction:[CCSequence actions:[CCDelayTime actionWithDuration:2], [CCFadeIn actionWithDuration:1], [CCDelayTime actionWithDuration:2], [CCCallFuncND actionWithTarget:self

我正在通过一些书学习CoCo2D,即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];

    }
它给了我一个在数据上显示的错误:运行中的图像:

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

我试着把它修好,但没有用。我该怎么办?我尝试将void*更改为NSMutableArray,但仍然没有帮助。我怎么投桥牌?我尝试使用了
\u桥接
,但它说您不能桥接强制转换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;

考虑使用ccCalBand,这本身就是不安全的!如果在序列运行时取消分配映像,则会崩溃。如果在调用func选择器运行之前停止序列,并且您使用桥接传输/保留来防止崩溃,则images对象将泄漏。CCCallBlock是在ARC下执行函数的安全方法。