Androidで開始したCocos2d-xv2プラットフォームでゲームを開発しました。Eclipseでのコーディングを完全に終了した後、Xcodeで同じコードを使用してiOSバージョンを作成しました。必要なライブラリをすべて追加した後、コードのコンパイルに成功しました。ただし、Androidでは問題なく実行されますが、iOSデバイスで実行するとゲームはハングします。エミュレータと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;
}
}