1

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。

4

1 回答 1

0

据我了解,作为NSDictionary一个 Objective-C 类,你只能从 Objective C 中使用它。这与 cocod2d 没有严格的关系。

IMO,您应该做的是使用std::map而不是NSDictionary保留您的目标。那么你将是 100% C++。

于 2013-01-22T13:29:03.227 回答