0

OS X で特権ヘルパー ツールとして実行する必要があるサーバーを作成しNSSocketPortNSFileHandleNSNotificationCenterます。ただし、NSNotificationCenter通知ハンドラの呼び出しを拒否します。関連するコードは次のとおりです。

NSSocketPort* sock = [[NSSocketPort alloc] initWithTCPPort:8080];
NSFileHandle* listener = [[NSFileHandle alloc] initWithFileDescriptor:sock.socket closeOnDealloc:NO]
[NSNotificationCenter.defaultCenter addObserver:self selector:@selector(onConnection:) name:NSFileHandleConnectionAcceptedNotification object:nil]

私のメインスレッドは実行[NSRunLoop.mainRunLoop run]中なので、それは問題ではありません。addObserver:呼び出しで「オブジェクト」を「リスナー」に設定しようとしましたが、違いはありませんでした。

4

1 に答える 1

1

NSFileHandleインスタンスを作成する前に、オブザーバーとして登録してみてください。init メソッド中に通知が送信された場合は、登録が遅すぎます。(私は の特定の経験がないNSFileHandleので、これは修正の可能性についての単なる予感です。)

于 2012-05-18T04:00:09.173 に答える