проблема с использованием const char * для передачи параметра - PullRequest
0 голосов
/ 26 сентября 2010

Сначала я сохраняю значение 3 в паре карты следующим образом:

void AddMenuAtlasTexture( int tag, const char* filename, const char* textureName )
{
 map<const char*, const char*> _item;
 _item.insert(pair<const char*, const char*>(filename, textureName));

 m_texturesToLoad.insert(pair<int, map<const char*, const char*> >(tag, _item));
};

, затем я передаю значение другой функции, например:

map<const char*, const char*>::iterator _content;
int _tag = (*m_texturesToLoadIterator).first;
_content = (*m_texturesToLoadIterator).second.begin();
AtlasManagerSingleton->AddAtlas((*_content).first, (*_content).second, _tag);

"textureName"такой абсолютный путь, как этот: "/ Пользователи / Эдди / Библиотека / Поддержка приложений / Симулятор iPhone / Пользователь / Приложения / 5FDE0091-2E93-42FE-BB62-05A16429551D / Ranch.app /../ Documents / shop_tex.png"

моя проблема в том, что первая функция может получить «textureName» правильно, но вторая функция «AddAtlas» не может получить путь, «(* _content) .second» равен NULL.

и прототип "AddAtlas":

void AtlasManager :: AddAtlas( const char *a_configFile, const char *a_spriteName, int a_nKey ) 

Я разрабатываю это в iPhone dev, используя XCode.

1 Ответ

0 голосов
/ 29 ноября 2011
  • используйте make_pair вместо pair<int, map<const char*, const char*> >.
  • используйте -> вместо *.
  • загрузчик текстур - карта int -> const char* -> const char*.Я не понимаю, где вы использовали второй индекс.

Возможно, это:

AtlasManagerSingleton->AddAtlas((*_content).first, (*_content).second, _tag)

Должно быть:

AtlasManagerSingleton->AddAtlas(_content->first, _content->second.begin()->second, _tag)
...