2011-12-01 60 views
0

我目前與MYNetwork庫Bonjour類一起工作,並且在發現txt記錄時遇到問題。當一個新服務出現時,它的txt記錄每次都是空的。使用MYNetwork庫瀏覽服務(bonjour)時,txtRecord爲null

在我的服務器端我安裝TXT記錄是這樣的:

self.server = [[MYBonjourRegistration alloc] initWithServiceType: @"_blipecho._tcp." port:9121]; 
[server setString:@"Cyprian" forTXTKey:@"Name"]; 
[server start]; 

從那時起,我發現並記錄該數據的瀏覽器:

- (void)observeValueForKeyPath:(NSString *)keyPath 
         ofObject:(id)object 
         change:(NSDictionary *)change 
         context:(void *)context 
    { 
     if ([keyPath isEqual:@"services"]) { 

      NSSet *newServices = (NSSet*)[change objectForKey:@"new"]; 

      if(newServices){ 

       MYBonjourService *service; 
       for (service in newServices){ 
        textView.text = [NSString stringWithFormat:@"%@\nNew user: %@ (%@)", textView.text, service.name, [service txtRecord]]; 

       } 
      } 
    } 

而且我得到空的txtRecord。

回答

0

好的,得到了​​答案。

問題是新發現的服務尚未解決,因此沒有數據。

必須先解決服務。

-(void)resolveService:(MYBonjourService*)service{ 

    service.addressLookup.continuous = YES; 
    [service.addressLookup addObserver: self 
          forKeyPath: @"addresses" 
           options: NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew 
           context: NULL]; 
    [service queryForRecord: kDNSServiceType_NULL]; 
}