2013-10-14 2 views
1

내가 세션에 참가하기 위해 근처의 장치에게이 방법을 사용하고 있습니다 : 내가 그것을 할 때 나는 또한 호출하는 방법이 있나요 지표invitePeer 제한 시간 7

[browser invitePeer:key 
      toSession:session 
     withContext:nil 
      timeout:30]; 

에게 회전 시작 타임 아웃 순간? 다른 장치가 범위를 벗어난다면 어떻게 될까요?

편집 :

내가이 상태가 호출되지 않습니다 것을 알 수 :

if (state == MCSessionStateConnecting) { 
    NSLog(@"CONNECTING %@", peerID); 
} 

답변

4

브라우저 측에서 타임 아웃의 경우에, 당신은 MCSessionStateNotConnected 상태를 감시 할 필요가있다. 나는 다음과 같이한다 :

- (void)session:(MCSession *)session 
      peer:(MCPeerID *)peerID 
didChangeState:(MCSessionState)state 
{ 
    if (state == MCSessionStateNotConnected) 
    { 
      if (self.isWaitingForInvitation) 
      { 
       UIAlertView *alertView = [[UIAlertView alloc] 
          initWithTitle:NSLocalizedString(@"ERROR_TITLE", nil) 
          message:NSLocalizedString(@"ERROR_TEXT", nil) 
          delegate:self 
          cancelButtonTitle:NSLocalizedString(@"NO", @"Não") 
          otherButtonTitles:NSLocalizedString(@"YES", @"Sim"), 
                    nil]; 
       dispatch_sync(dispatch_get_main_queue(), ^{ 
        [alertView show]; 
       }); 
       self.isWaitingForInvitation = NO; 
     } 
} 

경고 팝업을 즉시 만들기 위해 dispatch_sync를 사용한다.

0

시간 간격 매개 변수와 일치하는 타이머 간격을 사용하는 것이 더 좋습니다.