Я создаю игру в Cocos2D 2, но моя проблема связана с NSArray/NSMutableArray.непризнанный селектор, отправленный экземпляру NSArray/NSMutableArray
Класс, называемый SocketManager, который управляет классом сокетов, который является производным от CCSprite. У Socket есть только дополнительная переменная-член, называемая строкой, которая является int. SocketManager хранит массив со всеми спрайтами Sockets, которые находятся в игре.
В классе игры у меня есть этот код, чтобы добавить сокеты менеджеру:
for (int i = 1; i <= numRows; i++) {
for (int j = 1; j <= i; j++) {
Socket *socket =[Socket spriteWithFile:@"Tile_Socket.png"];
socket.row = i;
socket.anchorPoint = ccp(0.5, 0.5);
/* Shortend to cut out useless code */
[socketsManager addSocket:socket];
[self addChild:socket];
}
}
Это SocketsManger добавить функцию:
-(void)addSocket:(CCSprite *)socket {
[sockets addObject:sockets];
}
Позже в игре в функции обновления он проверяет, хочет ли строка изменить и вызывает функцию SocketManager:
-(NSArray *)searchSocketByRow:(int)row; {
NSMutableArray *array = [[NSMutableArray alloc] init];
for (Socket *socket in sockets)
CCLOG(@"Row: %i", socket.row);
// if ([socket row] == row)
// [array addObject:socket];
// CCLOG(@"Found %i sockets.", [array count]);
// return [NSArray arrayWithArray:[array mutableCopy]];
}
Когда я пытаюсь вызвать socket.row или [строку сокета] Я получаю ошибку:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM row]: unrecognized selector sent to instance
Wow я пропустил это. Благодаря! – Marquisk2