В моем приложении для iPhone я публикую службу bonjour и использую следующий метод делегата:
- (void)netServiceDidPublish:(NSNetService *)ns
{
NSLog(@"Bonjour Service Published: http://%@.%@", [ns name], [ns domain]);
}
Свойство «имя» возвращает правильное имя устройства «Как проходит тестирование». Однако, когда я использую Safari для обнаружения доступных служб, имя службы — «hows-testing» — служба http://hows-testing.local.:somePortNumber.
Почему опубликованное имя отличается от того, что сообщает NSNetService? Как отобразить фактическое имя опубликованной службы? Предполагая, что по какой-то причине нет возможности получить опубликованное имя из объекта, как мне определить его самому? Я понимаю, что это основано на имени устройства, но каковы правила замены? Удалите апострофы, замените пробелы тире... что-нибудь еще? Как насчет специальных символов?