gpt4 book ai didi

objective-c - 全局套接字启动(AsyncSocket)

转载 作者:行者123 更新时间:2023-12-03 17:14:39 24 4
gpt4 key购买 nike

我正在尝试从另一个类启动套接字(不在“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”,没有被调用。

知道如何调用它吗?

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

最佳答案

您需要通过向您的 NSNetService 对象发送 setDelegate: 消息来设置委托(delegate) - 从您发布的代码来看,它是“netService” >"([netService setDelegate:self];)。

将“NSApplicationDelegate、NSNetServiceDelegate、GCDAsyncSocketDelegate”放入 .h 文件中不会设置委托(delegate),它基本上只是让编译器知道您打算实现这些协议(protocol)的方法。另外,您不应该在那里有 NSApplicationDelegate ,因为您已经有一个应用程序委托(delegate)。

关于objective-c - 全局套接字启动(AsyncSocket),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com