2013-08-02 4 views
1

NSNetService을 해결하는 데 문제가 있습니다. NSNetServiceBrowser이 해당 서비스를 찾으면 NSNetService을 성공적으로 해결했습니다.서버 쪽에서 NSNetService 해결

-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing{ 

    if (![self.services containsObject:aNetService]) { 

     [aNetService setDelegate:self]; 
     [aNetService resolveWithTimeout:5.0]; 
    } 
} 

이 메소드가 성공적으로

-(void)netServiceDidResolveAddress:(NSNetService *)sender{ 

    NSArray *addresses = [ns addresses]; 
    NSDictionary* dict = [NSNetService dictionaryFromTXTRecordData:[sender TXTRecordData]]; 
    // Here both values are ok 
} 

라고하지만 난 그 서비스가 게시되는 IP 주소를 얻기 위해 서버 측에 NSNetService를 해결하고자한다.

-(void)netServiceDidPublish:(NSNetService *)ns{ 

    [ns setDelegate:self]; 
    [ns resolveWithTimeout:5.0]; 
} 

하지만이 메서드는 호출하지 않습니다.

-(void)netServiceDidResolveAddress:(NSNetService *)sender{ 
  
} 

그러나 내가했던이

-(void)netServiceDidPublish:(NSNetService *)ns 
{ 
    NSArray *addresses = [ns addresses]; // this gives null 

    // this also gives null 
    NSDictionary* dict = [NSNetService dictionaryFromTXTRecordData:[sender TXTRecordData]]; 
} 

하지만 값이 null이다.

가능한 경우 도와주세요. 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

0

다른 날에도이 문제가 있었고 알아내는 데 다소 시간이 걸렸습니다. 어떤 이유로 든 aNetService를 속성에 할당해야했습니다.

# Declare a NSNetService property in the .h or further up .m file 
@property (strong, nonatomic) NSNetService *currentService; 

# In the .m file. 
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing{ 

    if (![self.services containsObject:aNetService]) { 
     self.currentService = aNetService; 
     [self.currentService setDelegate:self]; 
     [self.currentService resolveWithTimeout:5.0]; 
    } 
} 
+0

코드 서식을 수정할 수 있습니까? – Fiver

+0

고정 된 형식입니다. – percivalwcy

관련 문제