Я работаю над небольшим iOS приложением для собственного использования (по крайней мере, изначально), и я подумал, что буду использовать Bonjour для настройки сети между двумя iOS устройствами. Интерфейс моего сервера определяет
NSNetService *netService;
, и реализация использует следующий код для объявления о его существовании:
const NSString *kSEBonjourServiceDomain = @""; //use defaults
const NSString *kSEBonjourServiceName = @"_test._tcp.";
//...
netService = [[NSNetService alloc] initWithDomain:(NSString *)kSEBonjourServiceDomain type:(NSString *)kSEBonjourServiceName name:@"" port:sin.sin_port];
if (netService)
{
netService.delegate = self;
netService.includesPeerToPeer = YES;
[netService publish];
}
else NSLog(@"Failed to create NSNetService");
Когда я запускаю сервер, мой объект NSNetService вызывает -netServiceDidPubli sh: метод делегата, но когда я использую Discovery для просмотра бесплатных сервисов в моей сети, мой сервис не появляется. Помимо константных строк, этот код аналогичен некоторому коду в одном из моих приложений Ma c (работает должным образом), а также очень похож на пример кода Apple. Я просмотрел все параметры на вкладке возможностей XCode на случай, если мне нужно что-то добавить, но я не вижу ничего релевантного. Я также прочитал кучу документов и учебных пособий, в которых не упоминается о необходимости делать что-то большее, но я не удивлюсь, узнав, что это работает только на iOS, если вы установите непонятную настройку сборки на Строка, о которой вы должны были узнать, прочитав Руководство по интерфейсу пользователя для watchOS в сентябре прошлого года. Итак, кто-нибудь может просветить меня? Что мне не хватает? Заранее спасибо!