我首先将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”是这样的绝对路径:“/ Users / eddy / Library / Application Support / iPhone Simulator / User / Applications / 5FDE0091-2E93-42FE-BB62-05A16429551D / Ranch.app /../文档/ shop_tex.png“
我的问题是第一个函数可以得到“textureName”,但第二个函数“AddAtlas”无法获取路径,“(* _content).second”为NULL。
和“AddAtlas”原型是:
void AtlasManager :: AddAtlas( const char *a_configFile, const char *a_spriteName, int a_nKey )
我使用XCode在iPhone开发中开发它。
答案 0 :(得分:0)
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)