IOS 设计模式之Delegate模式
为什么会有delegate模式?换句话说,它可以用来解决神马问题? 当一个类的某些功能需要被别人来实现,但是既不明确是些什么功能,又不明确谁来实现这些功能的时候,委托模式就可以派上用场。 实例代码: ClassA.h #import <Foundation/Foundation.h> @interface ClassA : NSObject { id _delegate; } @property(nonatomic, assign) id delegate; - (void)call; @end #import "ClassA.h" #import "ClassB.h" @implementation ClassA @synthesize delegate; - (void)call { NSString* value = @"你好"; [delegate transparendValue:value]; } @end ClassB.h #import <Foundation/Foundation.h> @interface ClassB : NSObject - (void)transparendValue:(NSString *)fromValue; @end ClassB.m #import "ClassB.h" @implementation ClassB - (void)transparendValue:(NSString *)fromStr { NSLog(@"%@ ,我是委托测试",fromStr); } @end main.m #import <Foundation/Foundation.h> #import "ClassA.h" #import "ClassB.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... ClassA *a = [[ClassA alloc]init]; ClassB *b = [[ClassB alloc]init]; a.delegate = b; [a call]; } return 0; }