cocos2d-x 解析 Info.plist 及其它.plist

首先說明一點在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了.

本篇爲原創,  轉載請註明!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章