0
私のアプリでは、ファイルを共有してWebブラウザからアプリケーションにファイルをアップロードするためにWiFi上のサーバーを開きます。 私は主なスレッド(UIスレッド)上で動作し、多くの問題を抱えているという問題があります。代わりにこのコードをバックグラウンドで動作させる方法がありますか?バックグラウンドスレッドでCFReadStreamClientCallBack
これはコードです:
私が読んストリームこの方法では、非ブロックします:
if (!CFReadStreamSetClient (theReadStream,
kCFStreamEventHasBytesAvailable | kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered | kCFStreamEventOpenCompleted,
(CFReadStreamClientCallBack)&MyCFReadStreamCallback,
(CFStreamClientContext *)(&theContext)))
{
NSError *err = [self getStreamError];
NSLog (@"AsyncSocket %p couldn't attach read stream to run-loop,", self);
NSLog (@"Error: %@", err);
if (errPtr) *errPtr = err;
return NO;
}
をし、それがこのメソッドを呼び出します。
static void MyCFReadStreamCallback (CFReadStreamRef stream, CFStreamEventType type, void *pInfo)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
AsyncSocket *socket = [[(AsyncSocket *)pInfo retain] autorelease];
[socket doCFReadStreamCallback:type forStream:stream];
[pool release];
}
これはソースコードのiは、使用: http://code.google.com/p/cocoaasyncsocket/