0

CocoaAsyncSocketを使用してTCPでサーバーに接続する必要がある単純なクライアントを作成しようとしています。CocoaAsyncSocketへのデリゲートとして設定されたクラスMyClassがあり、「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;
}
4

1 に答える 1

3

CocoaAsyncSocketが実行されていることに依存しているため、これは機能しませんNSRunLoop。代わりsleep(1)に、メインスレッドで常に実行されています。おそらく、無限の while ループを次のように置き換えます。

[[NSRunLoop mainRunLoop] run];
于 2013-02-21T13:10:38.747 に答える