2011-12-01 1 views
0

현재 Bonjour 라이브러리 MYNetwork 라이브러리로 작업 중이며 txt 레코드를 발견하는 데 문제가 있습니다. 새로운 서비스가 나타날 때마다 txt 레코드는 매번 null입니다. 내 서버 측 I 설정 TXT 레코드에MYNetwork 라이브러리를 사용하여 서비스 (봉주르)를 검색 할 때 txtRecord가 null입니다.

이 방법 :

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에 null를 얻을.

답변

0

그래, 대답 해.

새로 발견 된 서비스가 아직 해결되지 않았으므로 데이터가 없었습니다.

먼저 서비스를 해결해야했습니다.

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

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