在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
委托(delegate)是一种对象,另一个类的对象会要求委托对象执行它的某些操作。 /********************************************** Foo.h ***********************************************/ #import <Foundation/Foundation.h> @interface Foo : NSObject { NSInteger _t; } @property NSInteger t; @property (nonatomic, strong) id delegate; -(void) notify; @end @protocol FooDelegate -(void)fun; @end /********************************************** Foo.m ***********************************************/ #import "Foo.h" @implementation Foo @synthesize delegate; -(void)setT:(NSInteger)newt { self.t = newt; } -(NSInteger)t { NSLog(@"getter"); return self.t; } -(void) notify { NSLog(@"notify..."); if ([delegate respondsToSelector:@selector(fun)]) { [delegate fun]; } } @end /********************************************** Temp.h ***********************************************/ #import <Foundation/Foundation.h> @interface Temp : NSObject @end /********************************************** Temp.m ***********************************************/ #import "Temp.h" @implementation Temp -(void) fun { NSLog(@"Temp fun"); } @end /********************************************** main.m ***********************************************/ #import <Foundation/Foundation.h> #import "Foo.h" #import "Temp.h" int main (int argc, const char * argv[]) { @autoreleasepool { Foo *ob = [[Foo alloc] init]; Temp *t = [[Temp alloc] init]; ob.delegate = t; [ob notify]; } return 0; } |
请发表评论