【发布时间】:2012-05-20 20:06:13
【问题描述】:
我正在尝试从另一个类(不在“applicationDidFinishLaunching”中)启动一个套接字,因此,在 AppDelegate.m 我正在调用类 netClass:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
netClass *network = [[netClass alloc] init];
[network startNet];
}
而在netClass中,startNet方法正常启动socket:
- (void)startNet
{
[DDLog addLogger:[DDTTYLogger sharedInstance]];
...
[netService publish];
}
但是netClass中的asyncSocket方法,如“didAcceptNewSocket”、“socketDidDisconnect”、“netServiceDidPublish”,没有被调用。
知道怎么称呼它吗?
任何帮助将不胜感激:-)
【问题讨论】:
-
什么是
netClass?您可能没有设置委托。 -
netClass是我创建的另一个类,用于启动连接并处理委托方法。在 .h 文件中,我设置了委托,例如NSObject <NSApplicationDelegate, NSNetServiceDelegate, GCDAsyncSocketDelegate>,但它不起作用。任何想法,斯蒂芬? -
@Alberto:这不是设置委托;那就是声明该类的实例可以是那些类型的委托。声明任何实例都可以是某些类型对象的委托,并不会使特定实例实际上成为特定其他对象的委托。
-
@PeterHosey,对不起,实际上,我还添加了
[netService setDelegate:self];,但它不起作用!太奇怪了!
标签: objective-c cocoa asyncsocket