NSNetService问题
|
我正在尝试在iOS设备和Mac之间建立Bonjour连接。彼此发现很好,但是我遇到了
setTXTRecordData:
问题。它总是失败(布尔返回否)...
_serviceInstances创建:
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing
{
[aNetService retain];
[aNetService setDelegate:self];
[aNetService startMonitoring];
[aNetService performSelectorOnMainThread:@selector(resolve) withObject:nil waitUntilDone:YES];
[_serviceInstances addObject:aNetService];
}
发送尝试:
NSNetService*service = [_serviceInstances objectAtIndex:[servicesTable selectedRow]];
[service setDelegate:self];
NSDictionary*txtRecordDataDictionary = [NSDictionary dictionaryWithObject:@\"2\" forKey:@\"Version\"];
if (service)
{
BOOL success = [service setTXTRecordData:[NSNetService dataFromTXTRecordDictionary:txtRecordDataDictionary]];
if (!success)
{
NSRunCriticalAlertPanel(@\"Sync Error\", @\"Failed to contact Client. Please restart Carbon on your iPad and try again.\", @\"OK\", nil, nil);
}
NSLog(@\"Service: %@\",service);
}
NSLog消息输出正确的“ 3”。
iOS代码:
NSNetService*service = [[NSNetService alloc] initWithDomain:@\"local.\" type:@\"_test._tcp.\" name:[[UIDevice currentDevice] name] port:28];
[service setDelegate:self];
[service setTXTRecordData:nil];
[service publish];
[service startMonitoring];
- (void)netService:(NSNetService *)sender didUpdateTXTRecordData:(NSData *)data
{
NSLog(@\"Got Data! of %@\",sender);
NSPropertyListFormat format;
NSDictionary*dict = [NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListImmutable format:&format errorDescription:nil];
UIAlertView *myAlert = [[UIAlertView alloc]
initWithTitle:[sender name] message:[dict objectForKey:@\"Version\"]
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@\"OK\", nil];
[myAlert show];
[myAlert release];
}
出于某种原因,当我启动iPad应用程序时(该标题以外的空白内容),该警报会被调用,但不会响应来自Mac的任何信号。
我确定我缺少什么?
没有找到相关结果
已邀请:
1 个回复
杰黔轿缺
文档指出,必须先解析服务,然后才能获取TXT记录数据。
和
似乎仅与可以使用
中所述的C API创建和发现的可能DNS-SD记录的子集一起使用,该API允许将多个TXT记录附加到单个广告服务。