似乎cocos2d-x没有NSValue的任何内置类似物,所以我在转换以下方法时遇到了一些麻烦:
- (BOOL)isEmpty:(id)target :(CGPoint)position {
BOOL result = YES;
// objectForKey receives "id" parameter, not "const &string"
Trail *trail = [_objects objectForKey:[NSValue valueWithCGPoint:position]];
if(trail && [trail.target isEqual:target]) {
result = NO;
}
return result;
}
cocos2d-x有自己的NSDictionary实现,名为CCDictionary,具有相同的逻辑。所以我可以像在Objective-C中一样存储对象,但我不能做的是通过键提取对象,其中键具有'id'类型。 CCDictionary只有在键类型为std :: string或int时才能提取值。正如我上面提到的,cocos2d-x没有NSValue的任何模拟。
答案 0 :(得分:0)
据我所知,作为Objective-C类的NSDictionary
,你只能在Objective C中使用它。这与cocod2d没有严格的关系。
你应该做什么,IMO,正在使用std::map
代替NSDictionary
来保留你的观点。那你就是100%C ++。