저는 3 개의 클래스가있는 프로젝트에서 Apple, Orange 및 Pear이라고합시다.Xcode의 잘못된 경고는 "X 프로토콜을 구현하지 않습니다"
Apple 및 Orange에는 모두 대리인 속성이 있습니다.
둘 다 AppleDelegate 및 OrangeDelegate라는 헤더 파일에 프로토콜을 정의합니다.
- (id)initWithDelegate:(id<AppleDelegate>)delegate
- (id)initWithDelegate:(id<OrangeDelegate>)delegate
배는 OrangeDelegate를 구현하고 다음과 같이 정의된다 :
Orange *anOrange = [[[Orange alloc] initWithDelegate:self] autorelease];
결과 그 :
이@interface Pear : NSObject <OrangeDelegate>
내부 배, 나는이 전화를
그들은 각각 유사한 서명이 초기화가 이 컴파일러 경고 :
Class 'Pear' does not implement the 'AppleDelegate' protocol
컴파일러가 초기화 프로그램의 프로토콜을 인식하지 못하는 것 같습니다.
- (id)initWithDelegate:(id)delegate
내가 배의 초기화에 "정의로 이동"을 클릭하면 때문에,이 옵션으로 두 클래스를 제공합니다 : 즉, 그것은 단지 모두이 서명을 인식합니다.
내 방법의 이름을 변경하는 것 외에이 경고를 수정할 수있는 방법이 있습니까?
그 이상한 당신은 배를 사과 대표로 지정하지 않습니다. 무언가는 당신의 방어에서 벗어나야합니다. – Daniel
@ 대니얼 - 그건 제가 생각한 것입니다,하지만 나는 그렇지 않습니다. 방금 애플을 추가하면 경고가 나타납니다. 오렌지와 배 모두 그 전에 존재했고 경고없이 컴파일되었습니다. Apple을 추가 할 때 Orange 또는 Pear도 수정되지 않았지만 갑자기 경고를 던지기 시작했습니다. – DougW