這個代碼是從樣品中 部分.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