在我的 iPhone 应用程序中,我发布了一个 bonjour 服务并使用以下委托方法:
- (void)netServiceDidPublish:(NSNetService *)ns
{
NSLog(@"Bonjour Service Published: http://%@.%@", [ns name], [ns domain]);
}
“name”属性返回的是正确的设备名称“How's Testing”。但是,当我使用 Safari 发现可用服务时,名称是“hows-testing”——该服务是http://hows-testing.local.:somePortNumber。
为什么发布的名称与 NSNetService 报告的名称不同?如何显示已发布服务的实际名称?假设由于某种原因,无法从对象中获取已发布的名称,我该如何自己确定呢?我知道它基于设备名称,但替换规则是什么?删除撇号,用破折号替换空格......还有什么?特殊字符呢?