AsyncSocket setDelegate无法正常工作?

时间:2012-04-20 06:29:48

标签: objective-c macos cocoa asyncsocket

我正在使用AsyncSocket类在游戏服务器上工作。我正在尝试在建立连接并将套接字对象处理到播放器之后,将读取/写入从服务器对象重定位到播放器对象:

以下是服务器的连接方法

- (void)onSocket:(AsyncSocket *)sock didAcceptNewSocket:(AsyncSocket *)newSocket {
    [self logMessage:@"Incoming Client" withColor:[NSColor greenColor]];

    Player *p=[[Player alloc] initWithConnection:newSocket];
    [_players addObject:p];
    [p release];

    [[[NSApplication sharedApplication] dockTile] setBadgeLabel:[NSString stringWithFormat:@"%lu",[_players count]]];
    [tableView reloadData];
}

在我的Player.m类中,我有以下initWithconnection:方法(摘录):

- (id)initWithConnection:(AsyncSocket *)connection {
  self = [super init];
  if (self) {
    ...
    _connection=[connection retain];
    if ([_connection canSafelySetDelegate]) {
      [_connection setDelegate:self];
    }
  }
  return self;
}

我正在实现所需的委托方法(实际上,我只是从前一个服务器对象复制并粘贴它们来测试它),但在我看来,setDelegate:方法根本没有按预期工作。它不会被称为。将委托设置为服务器对象一切正常(我只需将传入的消息传递给正确的播放器对象)。

任何人都知道我在这里做错了什么?

感谢 / d

0 个答案:

没有答案