我在解析NSNetService时遇到了问题。当NSNetServiceBrowser找到该服务时,我已经成功地解析了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
}但我希望将NSNetService解析到服务器端,以获得发布该服务的IP地址。
-(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。
如果可能的话,请帮帮我。任何帮助都将不胜感激。提前谢谢。
发布于 2013-11-21 08:10:51
前几天也遇到了这个问题,我花了一段时间才弄明白。出于某种原因,我需要将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];
}
}https://stackoverflow.com/questions/18017496
复制相似问题