gpt4 book ai didi

objective-c - 无法在参数传递中将 'b2PolygonShape' 转换为 'objc_object*'

转载 作者:行者123 更新时间:2023-12-03 17:30:56 39 4
gpt4 key购买 nike

我不确定你们中的许多人是否熟悉 box2d 物理引擎,但我在 cocos2d 和 Objective C 中使用它。

这或多或少可能是一个普遍的 Objective-C 问题,但我正在执行以下操作:

NSMutableArray *allShapes = [[NSMutableArray array] retain]; 
b2PolygonShape shape;
..
..
[allShapes addObject:shape];

并在构建时的 addObject 定义上收到此错误:

cannot convert 'b2PolygonShape' to 'objc_object*' in argument passing

所以或多或少我想我想知道如何将 b2PolygonShape 添加到可变数组。 b2PolygonShape 似乎只是一个类,而不是一个结构或类似的东西。我在谷歌上找到的最接近的东西我认为可以做到这一点被描述为“将 b2PolygonShape 封装为 NSObject,然后将其添加到数组中”,但不确定执行此操作的最佳方法,但我会认为这是对象应该使用 addObject 添加,因为我的一些其他实例化类对象可以很好地添加到数组中。

这都是因为 b2PolygonShape 没有在其根继承 NSObject 吗?

谢谢

最佳答案

b2PolygonShape是一个 C++ 类,而不是 ObjC 类。您只能将 ObjC 实例放入“NS-containers”中。

既然你无论如何都需要 C++,所以最好使用 std::vector<b2PolygonShape> .

关于objective-c - 无法在参数传递中将 'b2PolygonShape' 转换为 'objc_object*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2612559/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com