首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iphone SDK:[错误]找不到"NSNetServiceDelegate“的协议声明

Iphone SDK:[错误]找不到"NSNetServiceDelegate“的协议声明
EN

Stack Overflow用户
提问于 2010-09-14 14:14:57
回答 4查看 2K关注 0票数 0

此代码来自.h部件中的示例:

代码语言:javascript
复制
@interface ViewController : UITableViewController < NSNetServiceBrowserDelegate > {
        NSMutableArray * tableData;
        NSNetServiceBrowser * _browser;
        NSMutableArray * _foundServices;

        NSURLConnection * _connection;
        NSInputStream * _consumerStream;
        NSString * controllerHostName;
}
@property (nonatomic, retain) NSMutableArray * tableData;
@property (nonatomic, retain) NSNetServiceBrowser * _browser;
@property (nonatomic, retain) NSMutableArray * _foundServices;
@property (nonatomic, retain) NSURLConnection * connection;
@property (nonatomic, retain) NSInputStream * consumerStream;
@property (nonatomic, retain) NSString * controllerHostName;

在.m部件中

代码语言:javascript
复制
    #import "ViewController.h"
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <unistd.h>
    #include <CFNetwork/CFNetwork.h>

    @synthesize tableData;
    @synthesize _browser;
    @synthesize _foundServices;
    @synthesize consumerStream = _consumerStream;
    @synthesize connection = _connection;
    @synthesize controllerHostName;

    - (void)viewWillAppear:(BOOL)animated {
            [super viewWillAppear:animated];

            _browser = [[NSNetServiceBrowser alloc] init];
            [_browser setDelegate:self];
            [_browser searchForServicesOfType:@"_service._tcp" inDomain:@""];
            [super viewWillAppear:animated];
    }


    - (void)viewWillDisappear:(BOOL)animated {
            [super viewWillDisappear:animated];

            [_browser stop];
            _browser.delegate = nil;
            [_browser release];
            _browser = nil;

            [_foundServices removeAllObjects];
    }
    - (void)netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser didFindService:(NSNetService *)netService moreComing:(BOOL)moreServicesComing
    {
            self.controllerHostName = [NSString stringWithFormat:@"%@.%@", netService.name, netService.domain];
            NSLog(@"ControllerHost String is: %@", self.controllerHostName);
            NSLog(@"URL to use is === %@.%@", netService.name, netService.domain);
            if (!_foundServices) {
                    _foundServices = [[NSMutableArray alloc] init];
            }

            [_foundServices addObject:netService];

            [self.tableView reloadData];
    }

    - (void)netServiceBrowser:(NSNetServiceBrowser *)netServiceBrowser didRemoveService:(NSNetService *)netService moreComing:(BOOL)moreServicesComing
    {
            [_foundServices removeObject:netService];
    }

    - (void)netServiceBrowserDidStopSearch:(NSNetServiceBrowser *)aNetServiceBrowser
    {

        [_foundServices removeAllObjects];
}

我像示例一样声明了所有的头文件,但收到错误消息“在.h中找不到"NSNetServiceDelegate”的协议声明

代码语言:javascript
复制
interface ViewController : UITableViewController < NSNetServiceBrowserDelegate > 

那么我有没有遗漏什么声明呢?该示例没有任何警告或错误

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-14 19:50:39

问题是一个未使用的函数。只需删除:

代码语言:javascript
复制
[self.tableView reloadData];

一切都会好的!

票数 1
EN

Stack Overflow用户

发布于 2010-09-14 14:35:08

我以为它是在"NSNetServices.h“中定义的?

票数 1
EN

Stack Overflow用户

发布于 2010-09-14 14:54:23

将此内容添加到您的标题中:

代码语言:javascript
复制
#import <Foundation/NSNetServices.h>

这是我从BonjourWeb苹果示例代码项目中获得的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3706502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档