У меня есть протокол, который реализует базовый класс.У меня есть подклассы, для которых я хочу применить протокол.
@class JSData;
@protocol JSDataProtocol <NSObject, NSCopying, NSMutableCopying>
@property (nonatomic, readonly) NSString *dataType;
@property (nonatomic, readwrite) id value;
- (JSData *)value;
- (BOOL)hasMeta;
// ...
@end
Базовый класс -
@interface JSData : NSObject <JSDataProtocol, JSHashable, JSEquatable>
@end
Затем я создаю другие классы, такие как
@interface JSSymbol: JSData
- (NSString *)name;
- (JSData *)value;
@end
Но проблема здесь в том, что JSData
соответствует JSDataProtocol
, если я пропустил реализацию какого-либо метода в JSSymbol
, XCode не показывает никакого предупреждения, и я получаю ошибку времени выполнения.Есть ли способ обеспечить, чтобы JSSymbol
реализовывал все методы, определенные в JSDataProtocol
?