在我的iPhone應用程序,我發佈Bonjour服務,並使用以下的委託方法:iPhone SDK:Bonjour&NSNetService名稱!=發佈的名稱?
- (void)netServiceDidPublish:(NSNetService *)ns
{
NSLog(@"Bonjour Service Published: http://%@.%@", [ns name], [ns domain]);
}
「名稱」屬性返回的設備名稱,「怎麼測試」,這是正確的。但是,當我使用Safari發現可用服務時,該名稱是「測試」 - 服務爲http://hows-testing.local.:somePortNumber。
爲什麼發佈的名稱與NSNetService報告的內容不同?如何顯示已發佈服務的實際名稱?假設出於某種原因,沒有辦法從對象中獲取已發佈的名稱,我該如何確定它?我知道它是基於設備名稱的,但替代規則是什麼?刪除撇號,用短劃線替換空格...其他任何東西?特殊字符呢?
嗨有。你解決了這個問題嗎?我有一個完全相同的問題,我的主機名字符串像'戴夫的iPhone',但我想將其轉換爲主機名稱,在這種情況下將是:「daves-iphone」。我可以做字符替換,但我相信有一個更優雅的方式! 如果您發佈您的解決方案,我將非常感激。謝謝 ! – 2010-07-21 13:28:03