2016-07-21 5 views

답변

0

Value 개체를 잘못 이해했다고 생각합니다.

적인 Cocos2D :: 가치는 많은 프리미티브 ([...] 및 표준 : : 문자열) 플러스 [...]

의 래퍼 클래스는 다음과 같습니다 설명서에 기록 된대로 당신이에 연결 그래서 실제로 Value은 다른 유형의 변수를 래핑하는 객체로, ValueMap (문자열의 해시는 Values - 각 Value은 다른 유형의 객체가 될 수 있음)과 같은 느슨하게 유형화 된 구조를 가질 수 있습니다. ValueVector (목록은 Values입니다.)

예를 들어 문자열이 모두 있지만 값이 다른 키를 사용하여 구성 해시를 만들려면 - 바닐라 C++에서 원하는 값 유형별로 별도의 데이터 구조를 만들어야합니다 저장하지만, Value 당신은 다만 할 수 있습니다

unordered_map<std::string, cocos2d::Value> configuration; 

configuration["numEnemies"] = Value(10); 
configuration["gameTitle"] = Value("Super Mega Raiders"); 

그것은 강력한 형식의 언어입니다 C에서 일부 느슨한 타이핑 ++ 만들 단지 메커니즘입니다.

당신은 이런 식으로 뭔가가있는 값에 문자열을 저장할 수 있습니다

std::string name = "Vidur"; 
Value nameVal = Value(name); 

을 그리고 나중에 그것을 검색 :

std::string retrievedName = nameVal.asString(); 

잘못된 유형으로 Value을 구문 분석하려고하면, 컴파일러가 알아낼 수있는 것이 아니기 때문에 런타임에 오류가 발생합니다.

질문이 있으면 알려주세요.