Технические вопросы и ответы QA1869

Выбор inviter при использовании Мультиравноправной Связи

Q: Я пытаюсь реализовать автоматический, приглашает Мультиравноправную связь использования. Что лучший путь состоит в том, чтобы обработать это?

Дескрипторы A: iOS 7 приглашают немного по-другому, чем iOS 8, поэтому если Вы захотите поддерживать iOS 7, то необходимо будет использовать немного отличающийся подход.

iOS 8 и позже

Запускаясь в iOS 8, все устройства могут просто пригласить любую коллегу, которую они обнаруживают при просмотре. Мультиравноправная Связь автоматически обработает, оба приглашают так, чтобы обе коллеги присоединились к тому же MCSession.

iOS 7

В iOS 7, отправляя одновременный приглашает, может вызвать, оба приглашают для сбоя, оставляя обе коллеги неспособными связаться друг с другом. Приложения могут работать вокруг этого, программно выбирая одну из коллег для отправки приглашения. Много подходов возможны для выбора привлекательной коллеги, но самое простое должно сравнить значения хэш-функции двух MCPeerID и выбрать самое высокое как показано в Перечислении 1

  Выбор перечисления 1, который пригласит MCPeerID

- (void)browser: (MCNearbyServiceBrowser*) browser
                 foundPeer: (MCPeerID*) nearbyPeerID
                 withDiscoveryInfo: (NSDictionary *) info
{
   // Compare the hash values of the 2 peers IDs
   if ((uint32_t)myPeerID.hash > (uint32_t)nearbyPeerID.hash)
   {
      [self.browser invitePeer:nearbyPeerID
                           toSession:session
                           withContext:nil
                           timeout:15];
   }
   else
   {
      // NSLog(@"Skipping invite on: %@", [myPeerID description]);
   }
}


История версии документа


ДатаПримечания
05.08.2014

Новый документ, описывающий, как приложения должны выбрать привлекательное устройство при использовании Мультиравноправной Связи