考虑以下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?
编辑:所以问题出在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发布通知.这是一个在黑暗中拍摄但我读到它在某个地方工作的人.
不幸的是,这并没有解决这种奇怪的行为.非常感谢任何理解和解决这种情况的帮助!
我想淡出MPMusicPlayerController特定时期内播放的声音? 我怎样才能做到这一点?
刚刚注意到__block一些Objective-c代码中的关键字,如下所示:
// myString passed into the method
__block NSString *_myString = myString;
Run Code Online (Sandbox Code Playgroud)
__block关键字如何改变上述代码的行为?
如何使用glReadPixels从EAGLView的帧缓冲内容中有效地创建CGImageRef?也许我可以"直接渲染到纹理"?
我对OpenGL ES比较陌生,所以非常感谢任何帮助!
添加和删除观察者的最佳做法是NSNotificationCenter什么?
我想知道如果加入self作为观察员viewDidLoad和删除self的viewDidUnload就足够了.也许我应该删除self的dealloc为好.
也许需要考虑低内存条件.我可以看到添加viewDidLoad和删除dealloc有问题:viewDidUnload由于内存不足而被调用...然后viewDidLoad在再次显示视图时被调用...现在self已被添加为观察者两次没有删除(因为dealloc不是所谓的).
注意:我正在考虑一个self引用UIViewController子类的基本示例.
我在friday.com上阅读这篇很棒的文章.bbum显示了一些Objective-c代码和相应的程序集.如何查看objective-c汇编代码?
假设我正在使用OS X终端进行编译gcc.
如何/etc/hosts在iOS设备上编辑?我只是sudo nano /etc/hosts在OS X上做.也许写一个小应用程序来做它是最好的方法.
请注意,我只想在iOS设备上进行编辑.我不打算在应用程序商店中为应用程序编辑它.
我有两个实例UIImage.如何创建第三个UIImage只是拼接在一起的两个原始图像?我希望顶部的第一个图像和底部的第二个图像使得顶部图像的底部边缘与底部图像的顶部边缘齐平.
此 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"上面代码中的链接器错误原因。是什么导致了上述代码中的链接器错误?
ios ×4
c++ ×2
objective-c ×2
android ×1
assembly ×1
audio ×1
cocos2d-x ×1
compilation ×1
const ×1
dealloc ×1
fadeout ×1
framebuffer ×1
gcc ×1
hosts ×1
iphone ×1
java ×1
networking ×1
opengl-es ×1
stdmap ×1
uiimage ×1
unix ×1
viewdidload ×1