捕获“this”指针时c ++ lambda的奇怪问题

时间:2014-05-21 10:02:19

标签: lambda cocos2d-x c++-cx

我在Windows平台上实现Cocos2d-x游戏。我使用Cocos 2.2.2和VS 2013更新。

我想做的事情:在游戏中,用户成功购买项目后(这是异步操作),我想更新具有相关状态的UI。

我是如何做到这一点的:我将lambda传递给负责购买的班级。内部回调,如果结果为“true”(例如成功) - 我处理UI更改。

代码示例:

    PurchaseHandler^ handler = ref new PurchaseHandler([this](bool result) -> void
    {
        if (result)
        {
            this->UpdateProductsPurchaseState(); //handle UI after success
        }
    });

    inAppService->RequestProductPurchase(productName, handler); //call to my class responsible for purchases

“this”是一个派生自CCLayer和CCTargetedTouchDelegate的类

问题: 当我收到回调时,“this”仅部分初始化。一些成员值似乎没问题,但其中很多都没有初始化。

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

很抱歉,事实证明问题出现在此代码之前,所以当我来到这里时我的#34;这个"已经腐败了。