インターフェイスとして機能する独自のヘッダー ファイルに protocolA があります。次に、そのプロトコルの異なる実装である 2 つの具象クラスがあります。
現在、私の ViewController では、これを使用して id 型のプロパティを宣言しています。これにより、VC がこれについて何も知らなくても実装を交換できます。
これら 2 つの実装オブジェクトから VC へのデリゲート呼び出しに使用される protocolB もあります。
問題は、循環依存関係があることです。
プロトコル A では、タイプ ID の「デリゲート」プロパティを宣言する必要があります。プロトコル B では、デリゲート メソッドは、型 ID のオブジェクトである呼び出し元に参照を送信しています...
より良いデザインはありますか?
例を挙げて更新してください。他の人にとって役立つかもしれません。
ProtocolA ヘッダー:
#import <Foundation/Foundation.h>
/*!
Abstract interface for any Provider
*/
@protocol DataProviderDatasource <NSObject>
@required
@property (nonatomic) id <DataProviderDelegate> delegate;
-(void)update;
@end
ProtocolB ヘッダー
#import <Foundation/Foundation.h>
#import "DataProviderDatasource.h"
/*!
Protocol that each Data Provider implements to make delegate calls to notify its delegate about data management operations.
*/
@protocol DataProviderDelegate <NSObject>
-(void)dataProviderWillUpdate:(id<DataProviderDatasource>)dataProvider;
-(void)dataProviderdidUpdate:(id<DataProviderDatasource>)dataProvider;
@終わり