全局套接字启动(AsyncSocket)

时间:2012-05-20 20:06:14

标签: objective-c cocoa asyncsocket

我正在尝试从另一个类启动套接字(不在“applicationDidFinishLaunching”中),因此,在 AppDelegate.m 中我正在调用类netClass:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    netClass *network = [[netClass alloc] init];
    [network startNet];
}

netClass 中,方法startNet正常启动套接字:

- (void)startNet 
{
    [DDLog addLogger:[DDTTYLogger sharedInstance]];
    ...
    [netService publish];
}

但netClass中的asyncSocket方法,如“didAcceptNewSocket”,“socketDidDisconnect”,“netServiceDidPublish”,都没有被调用。

知道怎么称呼它?

任何帮助将不胜感激: - )

1 个答案:

答案 0 :(得分:1)

您需要通过向您的NSNetService对象发送setDelegate:消息来设置委托 - 从您发布的代码看起来就是“netService”({{1} })。

在.h文件中放置“[netService setDelegate:self];”不会设置委托,它基本上只是让编译器知道您打算实现这些协议的方法。此外,您不应该有NSApplicationDelegate, NSNetServiceDelegate, GCDAsyncSocketDelegate,因为您已经有了一个应用代理。