아래 코드를 컴파일하면 다음 경고 메시지가 나타납니다. "ITunesFinder *"예상 "id"를 보내는 호환되지 않는 유형? 나는 단지 시작하고 진실한이 예제로 조금 혼란스러워합니다. 위임 클래스를 사용하지 않고이 예제를 작성하는 방법이 있는지 알고 싶습니다.ITunesFinder 예제의 경고 (Apress - Obj-C 학습)
나는 또한 클래스 구현에 대해 다소 혼란 스럽다.이 책은 이것이 무엇을 기반으로하는지, 카테고리, 프로토콜 또는 위임자가하는 일과 그 작동 방식을 설명하지 않는다. 여기
은 ...// INTERFACE
#import <Cocoa/Cocoa.h>
@interface ITunesFinder : NSObject
@end
코드입니다.
// IMPLEMENTATION
#import "ITunesFinder.h"
@implementation ITunesFinder
-(void) netServiceBrowser: (NSNetServiceBrowser *) b
didFindService: (NSNetService *) service
moreComing: (BOOL) moreComing {
[service resolveWithTimeout:10];
NSLog(@"Service Found: %@", [service name]);
}
-(void) netServiceBrowser: (NSNetServiceBrowser *) b
didRemoveService: (NSNetService *) service
moreComing: (BOOL) moreComing {
[service resolveWithTimeout:10];
NSLog(@"Service Lost!: %@", [service name]);
}
@end
.
// MAIN
#import <Foundation/Foundation.h>
#import "ITunesFinder.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSNetServiceBrowser *browser = [[NSNetServiceBrowser alloc] init];
ITunesFinder *finder = [[ITunesFinder alloc] init];
NSLog(@"iTunesFinder ... Start");
[browser setDelegate: finder]; // <<< Warning here !!!!
[browser searchForServicesOfType: @"_daap._tcp" inDomain:@"local."];
NSLog(@"Browsing ...");
[[NSRunLoop currentRunLoop] run];
// Clean up
[browser release];
[finder release];
[pool drain];
return 0;
}
모든 지혜/지혜가 크게 감사 할 것입니다.
게리
안녕 개빈, 내가 실제로 그 오류를 얻을 수 연타 LLVM 1.0에서 컴파일 된 :
애플의 문서는이 주제에 매우 좋다 GCC 4.2로 바꾸면 나에게도 같은 오류가 발생합니다. – fuzzygoat
Gavin, 인터페이스를 업데이트했습니다 ... @interface ITunesFinder : NSObject @end 오류가 사라집니다. 귀하의 의견을 보내 주셔서 다시 한 번 감사 드리며, 나는 약간의 개념을 알고있는 분야입니다. 내가 링크 된 문서를 확인해 보겠습니다. –
fuzzygoat
@fuzzygoat 문제 없어, 재미있게 보내세요! :) – gavinb