Выбор 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 | Новый документ, описывающий, как приложения должны выбрать привлекательное устройство при использовании Мультиравноправной Связи |