我正在尝试编写一个简单的客户端,它应该使用CocoaAsyncSocket连接到具有TCP的服务器。我有一个类MyClass被设置为CocoaAsyncSocket的委托,当构建一个“Cococa Application”(带有UI)时,这个类可以正常工作并连接到服务器并且正在调用didConnectToHost方法。
工作
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
self.my = [[MyClass alloc] init];
[self.my connect];
}
但是,在使用下面的主文件构建控制台应用程序时,它不起作用。我只是想解雇这个课程并让它在后台运行。
无效
#import <Foundation/Foundation.h>
#import "MyClass.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSLog(@"Hello, World!");
MyClass * my = [[MyClass alloc] init];
[my connect];
while(1) {
NSLog(@"Nothing");
sleep(1);
}
}
return 0;
}
答案 0 :(得分:3)
这不起作用,因为CocoaAsyncSocket
依赖NSRunLoop
运行,而sleep(1)
一直在主线程上运行。或许替换你的无限循环:
[[NSRunLoop mainRunLoop] run];