OC高效率52之經過委託與數據源協議進行對象間通訊

#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
相關文章
相關標籤/搜索