小编Sun*_*day的帖子

从标记为const的函数中的std :: map中检索项目

考虑以下C++代码:

// A.h
class A {
private:
    std::map<int, int> m;
    int getValue(int key) const;
};

// A.cpp
int A::getValue(int key) const {
    // build error: 
    // No viable overloaded operator[] for type 'const std::map<int, int>'
    return m[key];
}
Run Code Online (Sandbox Code Playgroud)

如何从函数m上下文中获取值const

c++ const stdmap

3
推荐指数
1
解决办法
1935
查看次数

在Cocos2dx中的主/ UI线程上运行代码

编辑:所以问题出在Java方面.购买完成的听众没有被调用.这非常有用:IabHelper PurchaseFinishedListener

我的Cocos2dx游戏在大多数情况下在Android和iOS上运行良好.只考虑给我带来麻烦的是Android In-App Billing.

我正在使用JNI从C++调用Java.Java代码在Google Play计费系统中来回传递,最终回调C++代码,指示给用户多少钱(成功购买金额).

从Java回到C++的调用正在做一些非常奇怪的事情.运行的C++代码应该更新两件事的显示.但是它只更新一个而且不一致.此外,从Java到C++的多次调用导致CCNodes忽略触摸并执行其他奇怪的操作.

在阅读了类似的问题之后,我意识到Java或C++调用可能不在主/ UI线程上.所以我试着解决这个问题:

// Java code
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
       public void onConsumeFinished(Purchase purchase, IabResult result) {
          if (result.isSuccess()) {
              String sku = purchase.getSku();
              if (sku.equals(IAB_ID_ABC)) {
                me.runOnUiThread(new Runnable() {
                    public void run() {
                        callCppMethodFromJava_giveUserABC();
                    }
                 });
               }
        }
    };
Run Code Online (Sandbox Code Playgroud)

这里我试图在main/UI线程上调用giveUserABC.giveUserABC被调用但是它表现出如上所述的奇怪行为.

我尝试的另一件事是在giveUserABC中通过CCNotificationCenter发布通知.这是一个在黑暗中拍摄但我读到它在某个地方工作的人.

不幸的是,这并没有解决这种奇怪的行为.非常感谢任何理解和解决这种情况的帮助!

java java-native-interface android in-app-billing cocos2d-x

3
推荐指数
1
解决办法
2991
查看次数

如何淡出MPMusicPlayerController播放的声音?

我想淡出MPMusicPlayerController特定时期内播放的声音? 我怎样才能做到这一点?

iphone audio fadeout mpmusicplayercontroller

2
推荐指数
1
解决办法
1634
查看次数

如何使用Objective-c中的"__block"关键字?

刚刚注意到__block一些Objective-c代码中的关键字,如下所示:

// myString passed into the method
__block NSString *_myString = myString;
Run Code Online (Sandbox Code Playgroud)

__block关键字如何改变上述代码的行为?

objective-c objective-c-blocks

2
推荐指数
1
解决办法
1388
查看次数

来自OpenGL ES framebuffer(iOS)的CGImageRef

如何使用glReadPixels从EAGLView的帧缓冲内容中有效地创建CGImageRef?也许我可以"直接渲染到纹理"?

我对OpenGL ES比较陌生,所以非常感谢任何帮助!

opengl-es framebuffer ios

2
推荐指数
1
解决办法
729
查看次数

向NSNotificationCenter添加/删除观察者的最佳实践

添加和删​​除观察者的最佳做法是NSNotificationCenter什么?

我想知道如果加入self作为观察员viewDidLoad和删除selfviewDidUnload就足够了.也许我应该删除selfdealloc为好.

也许需要考虑低内存条件.我可以看到添加viewDidLoad和删除dealloc有问题:viewDidUnload由于内存不足而被调用...然后viewDidLoad在再次显示视图时被调用...现在self已被添加为观察者两次没有删除(因为dealloc不是所谓的).

注意:我正在考虑一个self引用UIViewController子类的基本示例.

dealloc viewdidload nsnotificationcenter ios viewdidunload

2
推荐指数
2
解决办法
3095
查看次数

查看Objective-c的汇编代码

我在friday.com上阅读这篇很棒的文章.bbum显示了一些Objective-c代码和相应的程序集.如何查看objective-c汇编代码?

假设我正在使用OS X终端进行编译gcc.

assembly gcc compilation objective-c objc-message-send

2
推荐指数
2
解决办法
1031
查看次数

iOS上的/ etc/hosts

如何/etc/hosts在iOS设备上编辑?我只是sudo nano /etc/hosts在OS X上做.也许写一个小应用程序来做它是最好的方法.

请注意,我只想在iOS设备上进行编辑.我不打算在应用程序商店中为应用程序编辑它.

unix networking hosts ios

2
推荐指数
1
解决办法
5785
查看次数

从两个较小的UIImages创建UIImage

我有两个实例UIImage.如何创建第三个UIImage只是拼接在一起的两个原始图像?我希望顶部的第一个图像和底部的第二个图像使得顶部图像的底部边缘与底部图像的顶部边缘齐平.

image-manipulation core-graphics uiimage ios

2
推荐指数
1
解决办法
233
查看次数

C++ 私有静态成员变量

此 C++ 代码在编译时产生链接器错误:

// A.h
class A {
    public:
        static void f();
    private:
        static std::vector<int> v;
};

// A.cpp
void A::f() {
    // this line is causing trouble
    int i = v.size();
}
Run Code Online (Sandbox Code Playgroud)

将向量声明移动到 cpp 文件中是可行的。但是我想了解"Undefined symbols"上面代码中的链接器错误原因。是什么导致了上述代码中的链接器错误?

c++ static-methods static-members linker-errors

2
推荐指数
1
解决办法
3281
查看次数