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。