3

私はいくつかの本、つまりPablo Ruizの本でcocos2dを学んでいます。ここにいくつかのコードがあります:

[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];

    }

そして、runAction の data:images にエラーが表示されます。

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

私は無駄にそれを修正しようとしました。私は何をすべきか?void* を NSMutableArray に変更しようとしましたが、それでも解決しませんでした。ブリッジ キャストの方法を教えてください。使ってみ__bridgeましたが、NSMutableArray をブリッジキャストできないと表示されます。

4

1 に答える 1

3

この呼び出しを置き換えてみてください:

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

これとともに:

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

次に、フェード アンド ショー メソッドで、ID にキャストし直します。

NSMutableArray *images = (__bridge id) data;
于 2012-07-25T02:03:01.743 に答える