【问题标题】:CocoaAsyncSocket not behaving as expected when building console application构建控制台应用程序时 CocoaAsyncSocket 未按预期运行
【发布时间】:2013-02-21 11:50:43
【问题描述】:

我正在尝试编写一个简单的客户端,它应该使用 CocoaAsyncSocket 通过 TCP 连接到服务器。我有一个 MyClass 类,它设置为 CocoaAsyncSocket 的委托,并且在构建“Cococa 应用程序”(带有 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;
}

【问题讨论】:

    标签: objective-c macos cocoaasyncsocket


    【解决方案1】:

    这不起作用,因为CocoaAsyncSocket 依赖于NSRunLoop 来运行,而不是你的sleep(1) 一直在主线程上运行。也许将您的无限while循环替换为:

    [[NSRunLoop mainRunLoop] run];
    

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多