我想创建一个NSObject
包含一些成员变量的子类:
@interface PointMass : NSObject
{
CGPoint mCurPosition;
CGPoint mLastPosition;
CGPoint mAcceleration;
}
-(id) initWithPosition:(CGPoint*) pos;
#import "PointMass.h"
@implementation PointMass
-(id) initWithPosition:(CGPoint*)pos
{
mCurPosition = *pos;
mLastPosition = *pos;
mAcceleration = ccp(0,0);
return self;
}
@end
我想创建一个 C 风格的数组来在 cocos2d 类中保存一堆它们:
// mNumPoint declared in interface, I've set it to 100
PointMass *pointMassList;
pointMassList = malloc(sizeof(PointMass*) * mNumPointMass);
for (int = 0; i < mNumPointMass; i++)
{
CGPoint point = ccp(100,100);
PointMass *p = [[PointMass alloc] initWithPosition: &point];
pointMassList[i] = p;
}
但我得到一个错误
Expected method to write array element not found on object of type 'PointMass *'
如果我想将指向它的指针存储在 C 数组中,是否需要告诉编译器更多关于我的 PointMass 对象的信息?
我基本上是想在 iPhone 上玩一些粒子数学,而不需要不断地从 NSArray 中解包点,如果不清楚我想在这里实现什么。
如果我以一种倒退的方式处理这个问题,我很想得到纠正——我已经有一段时间没有写 vanilla C 了,而且我有点生疏了!