首先說明一點在iPhone開發時, 讀取Info.plist是有特定做法的
即類似"
[[NSBundlemainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]
"的做法.
但cocos2d-x爲是多平臺移植, 不能用NS....這裏東西. 所以plist文件的解析, 需要自己寫.
比如:
const char* l_path = CCFileUtils::fullPathFromRelativePath("XXX.plist");
CCMutableDictionary<string, CCObject*>* l_dic = CCFileUtils::dictionaryWithContentsOfFile(l_path);
string l_key = string("keyValue.....");
CCString* l_result = (CCString*)l_dic->objectForKey(l_key);
//如果轉成string的話
string l_stringResult = l_result->toStdString();
但在解析Info.plist的時候, 最到一個問題. 在XCode打開看到鍵爲"Bundle version", 帶進去一試. 返回的CCString爲空. 開始我以爲是鍵值裏面不能有空格, 但我在Info.plist自己加了個鍵值對, 也帶空格. 可以得到它的Value.
最後用其它編輯器(我用的是jEdit)打到Info.plist才找到原因:
"Bundle version"的真正鍵爲"CFBundleVersion", 是XCode爲了保護關鍵信息, 在顯示上做了特殊的處理. 把CFBundleVersion代進去, 就OK了.
本篇爲原創, 轉載請註明!