ObjectProperties.h오브젝티브 C 프로토콜 전달 선언
@protocol ObjectProperties <NSObject>
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSDate *date;
@property (assign, nonatomic) int64_t index;
@end
ClassA.h
#import <Foundation/Foundation.h>
@protocol ObjectProperties;
@interface ClassA : NSObject <ObjectProperties>
- (void)specialSauce;
@end;
ManagedClassA.h
#import <CoreData/CoreData.h>
@protocol ObjectProperties;
@interface ManagedClassA : NSManagedObject <ObjectProperties>
- (void)doSomething;
@end;
위의 코드 예제에서 .h 파일의 프로토콜을 코어 데이터 객체와 일반 ol '바닐라 객체 모두와 함께 사용하도록 정의했습니다. 그것은 "노이즈"같은 준수 클래스를 가지고 # 헤더 프로토콜에서 가져 오기; 위에 표시된 것처럼 구현 파일에서 & 프로토콜 가져 오기를 전달하는 것이 더 깨끗합니다. 그러나이 방법을 수행 할 때, 엑스 코드는 경고를 발생 :
Cannot find protocol definition for 'ObjectProperties'
코드는 컴파일하고 대부분 작동합니다. 코어 데이터가 스칼라 속성에 대한 getters/setter를 동적으로 만들려고 할 때 약간의 어색함이 있기 때문에 주로 말합니다. 그러나 나는 이것이 가장자리의 경우를 맞았 기 때문에 가능하다고 생각합니다.
물론 가장 확실한 해결 방법은 프로토콜 헤더를 클래스 헤더로 가져 오는 것입니다.
내 이해가 정확하다면 (그리고 내 지식이 매우 최근에 획득되어서 내가 틀렸을 수도 있습니다.), 프로토콜을 클래스 헤더로 가져 와서 프로토콜을 변경하면 모든 후속 내 클래스를 가져 오는 파일은 다시 컴파일해야합니다.
이 유형의 문제를 해결하는 올바른 방법은 무엇입니까?
비슷한 문제가 있지만 신속한 프로토콜이 있습니다. – Alper