Ios 发送到实例NSArray/NSMutableArray的选择器无法识别

Ios 发送到实例NSArray/NSMutableArray的选择器无法识别,ios,objective-c,arrays,cocos2d-iphone,nsarray,Ios,Objective C,Arrays,Cocos2d Iphone,Nsarray,我在CoCoS2D2中创建了一个游戏,但我的问题是NSArray/NSMutableArray 一个名为SocketManager的类,用于管理从CCSprite派生的套接字类。Socket只有一个名为row的额外成员变量,它是一个int。SocketManager保留一个包含游戏中所有Socket精灵的数组 在游戏类中,我使用以下代码将套接字添加到管理器: for (int i = 1; i <= numRows; i++) { for (int j = 1; j &l

我在CoCoS2D2中创建了一个游戏,但我的问题是NSArray/NSMutableArray

一个名为SocketManager的类,用于管理从CCSprite派生的套接字类。Socket只有一个名为row的额外成员变量,它是一个int。SocketManager保留一个包含游戏中所有Socket精灵的数组

在游戏类中,我使用以下代码将套接字添加到管理器:

    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];

    }
    }
稍后在游戏中的更新函数中,它会检查行是否需要更改,并调用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或[socket row]时,我得到错误:

    *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM row]: unrecognized selector sent to instance 
试一试


如果在要添加的对象上没有s,此方法看起来是错误的,请尝试将其更改为:

-(void)addSocket:(CCSprite *)socket {

[sockets addObject:socket];
 }
您尝试将数组添加到数组中,但希望添加CCSprite对象。
这应该会有帮助。

你的混音中有一个额外的S。在addsocket函数中更改

[sockets addObject:sockets];


哇,我错过了。谢谢
-(void)addSocket:(CCSprite *)socket {

[sockets addObject:socket];
 }
[sockets addObject:sockets];
[sockets addObject:socket];