Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone CFNetServiceCallBack示例_Iphone_Macos_Networking_Cfnetwork_Cfnetworking - Fatal编程技术网

Iphone CFNetServiceCallBack示例

Iphone CFNetServiceCallBack示例,iphone,macos,networking,cfnetwork,cfnetworking,Iphone,Macos,Networking,Cfnetwork,Cfnetworking,我刚刚开始编写一个小的iPhone/iPad应用程序来浏览网络存储并搜索可用磁盘。我认为我对CFNetService和相关功能的理解是正确的,但我希望在这一点上得到一些帮助: 有人介意发布一个CFNetServiceCallBack函数的示例,如“MyBrowseCallBack”中的“gServiceBrowserRef”设置中的“MyBrowseCallBack”,该设置位于以下示例中的Apple文档中: static Boolean MyStartBrowsingForServices(C

我刚刚开始编写一个小的iPhone/iPad应用程序来浏览网络存储并搜索可用磁盘。我认为我对CFNetService和相关功能的理解是正确的,但我希望在这一点上得到一些帮助:

有人介意发布一个CFNetServiceCallBack函数的示例,如“MyBrowseCallBack”中的“gServiceBrowserRef”设置中的“MyBrowseCallBack”,该设置位于以下示例中的Apple文档中:

static Boolean MyStartBrowsingForServices(CFStringRef type, CFStringRef domain) {

 CFNetServiceClientContext clientContext = { 0, NULL, NULL, NULL, NULL };

 CFStreamError error;

 Boolean result;



 assert(type != NULL);



 gServiceBrowserRef = CFNetServiceBrowserCreate(kCFAllocatorDefault, MyBrowseCallBack, &clientContext);

 assert(gServiceBrowserRef != NULL);



 CFNetServiceBrowserScheduleWithRunLoop(gServiceBrowserRef, CFRunLoopGetCurrent(), kCFRunLoopCommonModes);



 result = CFNetServiceBrowserSearchForServices(gServiceBrowserRef, domain, type, &error);

 if (result == false) {



     // Something went wrong so lets clean up.

     CFNetServiceBrowserUnscheduleFromRunLoop(gServiceBrowserRef, CFRunLoopGetCurrent(), kCFRunLoopCommonModes);         CFRelease(gServiceBrowserRef);

     gServiceBrowserRef = NULL;



     fprintf(stderr, "CFNetServiceBrowserSearchForServices returned (domain = %d, error = %ld)\n", error.domain, error.error);

 }



 return result;
}


老实说,我正在阅读文档!只是我个人觉得很难去研究这个话题(我第一次接触网络编码),我想在正确的方向上稍微推动一下。即使这只是一个显示“MyBrowseCallBack”所需函数签名的示例

我还是找到了答案——通常就在我的鼻子底下

void clientCB (CFNetServiceBrowserRef browser,CFOptionFlags flags,CFTypeRef domainOrService,CFStreamError* error,void* info)
{
NSLog(@"Found browser: %@",domainOrService);
CFStreamError anError;
if ((flags && kCFNetServiceFlagMoreComing) != kCFNetServiceFlagMoreComing) {
    NSLog(@"That'll be all...");
    CFNetServiceBrowserStopSearch(browser, &anError);
    return;
}
return;
}

我想我找错地方了,这可能不会让我更接近远程磁盘的文件目录