現在AZSocketIOを使ってhttp通信の処理を実装しようとかんがえています。非同期通信をdispatch_asyncで行って通信が成功するまでsemaphoreを使って待機しているのですが、待機中から次にすすめません。
semaphoreの使い方がまちがっているのでしょうか、、、
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{ self.socketIO = [[AZSocketIO alloc] initWithHost:SOCKET_HOST andPort:SOCKET_PORT secure:NO withNamespace:SOCKET_NAMESPACE]; [self.socketIO addCallbackForEventName:INIT_PLAYERDATA_RESULT callback:^(NSString *eventName, id data) { }]; [self.socketIO addCallbackForEventName:INIT_CONNECTION_RESULT callback:^(NSString *eventName, id data) { }]; [self.socketIO connectWithSuccess:^{ NSLog(@"Success connecting init"); }andFailure:^(NSError *error){ NSLog(@"Failure connecting. error: %@",error); }]; }); dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);
わかる方がいらっしゃいましたら回答の方よろしくおねがいします。
あなたの回答
tips
プレビュー