这个代码是从样品中 部分.H:iPhone SDK:[错误]找不到协议声明 “NSNetServiceDelegate”
@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部分
#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];
}
我声明所有标题为样本 但我收到错误消息“无法找到协议声明”NSNetServiceDelegate“ in .h
interface ViewController : UITableViewController <NSNetServiceBrowserDelegate>
那么我错过了什么声明? 该示例没有任何警告或错误
这很奇怪...苹果引用库里说:声明在 NSNetServices.h,但我不能包括或导入它... – 2010-09-14 06:52:18