plist文件的内容格式和xml文件的内容格式是一样的,测试的data.plist文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>name</key> <string>Hello World</string> <key>age</key> <integer>28</integer> </dict> </plist>
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" USING_NS_CC; class HelloWorld : public cocos2d::Layer { public: static cocos2d::Scene* createScene(); virtual bool init(); void readPlistByCocosAPI(); CREATE_FUNC(HelloWorld); private: LabelTTF *pLabel; }; #endif // __HELLOWORLD_SCENE_H__
#include "HelloWorldScene.h" Scene* HelloWorld::createScene() { auto scene = Scene::create(); auto layer = HelloWorld::create(); scene->addChild(layer); return scene; } bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); pLabel = LabelTTF::create("","Arial",30); pLabel->setPosition(visibleSize/2.0); this->addChild(pLabel); this->readPlistByCocosAPI(); return true; } void HelloWorld::readPlistByCocosAPI() { auto fileUtils = FileUtils::getInstance(); auto valueMap = fileUtils->getValueMapFromFile("data.plist"); log("valueMap_name:%s",valueMap["name"].asString().c_str()); log("valueMap_age:%d",valueMap["age"].asInt()); std::ostringstream str; str << "name:"; str << valueMap["name"].asString(); str << " age:"; str << valueMap["age"].asInt(); pLabel->setString(str.str()); }