Я хотел бы создать NSObject
подкласс, который содержит несколько члена варов:магазин массив NSObject указателей в массиве C
@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 *'
мне нужно делать т.е ll компилятор больше о моем объекте PointMass, если я хочу хранить указатели на него в массиве C?
Я в основном пытаюсь поиграть с некоторыми математическими частицами на iPhone без необходимости постоянно открывать точки из NSArray, если не ясно, чего я пытаюсь достичь здесь.
Если бы я пошел об этом в обратном порядке, я бы очень хотел, чтобы его исправили. Прошло некоторое время с тех пор, как я написал ваниль C, и я немного ржавый!
Прошло некоторое время с тех пор, как я просмотрел в своем заголовочном файле проблему: -S, конечно, я имел в виду указатель на указатель! Вам нужен кофе! Я использую индексирование C в первую очередь потому, что у меня многомерные массивы и не нашел способа получить к ним доступ в NSArray, который так же хорош, как foo [x] [y] – davbryn
@davbryn 'NSArray' может быть проиндексирован так же, как при использовании современные компиляторы. – 2013-03-27 19:43:40