Web API にアクセスする汎用リポジトリ (パターン) を作成しようとしています。Objective-C でプロトコルがどのように機能するかを理解するのに苦労しています (インターフェイスが少し異なる c# から来ました)。
私がやろうとしているのは、ProtocolB に渡されたオブジェクトが ProtocolA 自体を実装する必要があるため、ProtocolA を別の ProtocolB のパラメーターにしてから、ProtocolA の ProtocolB アクセス メソッドの実装にすることです。私はそれについて正しく考えていますか?
これは私がこれまでに持っているものですが、動作させることができないようです - 私の論理が間違っているかもしれません:
//PGenericModel.h
@protocol PGenericModel <NSObject>
- (void)testMethod;
@end
//PGenericRepository.h
#import "PGenericModel.h"
@protocol PGenericRepository <NSObject>
@required
- (void)Get:(id<PGenericModel>*)entity;
@end
//GenericRepository.m
#import "GenericRepository.h"
@implementation GenericRepository
- (void)Get:(id<PGenericModel>*)entity
{
//GET
[entity testMethod] <-- this doesn't work...
}
@end