将一些带有NSValue和NSDictionary :: objectForValue的Obj-C代码移植到cocos2d-x

时间:2013-01-22 13:21:06

标签: objective-c cocos2d-x

似乎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的任何模拟。

1 个答案:

答案 0 :(得分:0)

据我所知,作为Objective-C类的NSDictionary,你只能在Objective C中使用它。这与cocod2d没有严格的关系。

你应该做什么,IMO,正在使用std::map代替NSDictionary来保留你的观点。那你就是100%C ++。