#import <Foundation/Foundation.h> // 對象間通訊: // 在信息源模式中,信息又數據源流向類 // 普通的委託模式中,信息則從類流向受委託者 @class EOCNetworkFetcher; @protocol EOCNetworkFetcherDelegate <NSObject> @required -(void)networkFetcher:(EOCNetworkFetcher *)fetcher didReceiveData:(NSData *)data; @optional -(void)networkFetcher:(EOCNetworkFetcher *)fetcher didFailWithError:(NSError *)error; @end @interface EOCNetworkFetcher : NSObject @property (nonatomic , weak) id<EOCNetworkFetcherDelegate> delegate;//利用屬相來存放委託對象 @end #import "EOCNetworkFetcher.h" @implementation EOCNetworkFetcher -(void)didSomeSthing{ if ([_delegate respondsToSelector:@selector(networkFetcher:didReceiveData:)]){ [_delegate networkFetcher:nil didReceiveData:nil]; } } @end
#import <Foundation/Foundation.h> #import "EOCNetworkFetcher.h" @interface EOCDataModel : NSObject<EOCNetworkFetcherDelegate> @end #import "EOCDataModel.h" @implementation EOCDataModel -(void)networkFetcher:(EOCNetworkFetcher *)fetcher didReceiveData:(NSData *)data { //do some things } -(void)networkFetcher:(EOCNetworkFetcher *)fetcher didFailWithError:(NSError *)error { } @end