我在 Cocos2d-x v2 平台上开发了一款游戏,我从 Android 开始,在 Eclipse 上完全完成编码后,我在 Xcode 上使用相同的代码创建和 iOS 版本。添加所有必需的库后,我成功编译了代码。然而,游戏在 iOS 设备上运行时会挂起,尽管它在 Android 上运行没有任何问题。我尝试了模拟器和 iPod,但从静态方法访问静态成员时总是得到 EXC_BAD_ACCESS。静态成员总是指向 0x0!!这是代码的摘录:\
AppDelegate.cpp
#include "AppDelegate.h"
#include "NASEncData.h"
AppDelegate::AppDelegate()
{
ep = NASEncData::sharedUserData();
}
NASEncData.h
namespace CocosNas
{
class NASEncData : public CCObject
{
public:
static NASEncData* sharedUserData();
private:
NASEncData();
static void initXMLFilePath();
static std::string m_sFilePath;
}
}
NASEncData.cpp
#include "NASEncData.h"
NASEncData* NASEncData::sharedUserData()
{
initXMLFilePath();
// only create xml file one time
// the file exists after the programe exit
if ((! isXMLFileExist()) && (! createXMLFile()))
{
return NULL;
}
if (! m_spUserData)
{
m_spUserData = new NASEncData();
}
return m_spUserData;
}
void NASEncData::initXMLFilePath()
{
if (! m_sbIsFilePathInitialized)
{
m_sFilePath += CCFileUtils::sharedFileUtils()->getWriteablePath() + NASENCDATA_XML_FILE_NAME; <----error happens here
m_sbIsFilePathInitialized = true;
}
}