私はゆっくりとネットワークのコーディングを学び、少し行き詰まりました。nasドライブのTXTレコードにアクセスすることで、次のように提供されるボリュームを確認できると思いました。
http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt
しかし、私がこのコードを実行すると:
browse = [[NSNetServiceBrowser alloc]init];
[browse setDelegate:self];
[browse searchForServicesOfType:@"_afpovertcp._tcp." inDomain:@"local"];
サービスの検索とコールバックの以下を設定するには:
-(void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing
{
NSLog(@"Found: %@",aNetService);
CFNetServiceRef aCFNetRef;
aCFNetRef = CFNetServiceCreate(kCFAllocatorDefault, (__bridge CFStringRef)[aNetService domain],(__bridge CFStringRef) [aNetService type], (__bridge CFStringRef)[aNetService name], 0);
CFStreamError error;
if (CFNetServiceResolveWithTimeout(aCFNetRef, timeOut, &error)) {
NSLog(@"CFNET TXT: %@",CFNetServiceGetTXTData(aCFNetRef));
}
}
NSLog(@"TXTRecord: %@",[NSNetService dictionaryFromTXTRecordData:[aNetService TXTRecordData]]);
if (!moreComing) {
[browse stop];
[refreshButton setEnabled:YES];
[self reloadInputViews];
}
}
nslog()
行は、見つかったサービスのTXTレコードが空であることを示しています。
Found: <NSNetService 0x6a90fd0> local. _afpovertcp._tcp. myLocalSVR
CFNET TXT: <00>
TXTRecord: (null)
誰かが私がコードを正しく持っているかどうか、またはここのローカルNASにTXTレコードが含まれていないというだけであるかどうかを言うことができます-しかし、私が読んだことから、これはそうではないはずです。TXTレコードが咳をする前にサービスを解決する必要があることも読みましたが、それが実行されていることを望んでCFNetServiceResolveWithTimeout()
いました...
ありがとう!
トッド。