#import <Foundation/Foundation.h>
@protocol PrintProtocolDelegate
- (void)processCompleted;
@end
@interface PrintClass :NSObject
{
id delegate;
}
- (void) printDetails;
- (void) setDelegate:(id)newDelegate;
@end
@implementation PrintClass
- (void)printDetails{
NSLog(@"Printing Details");//5
[delegate processCompleted];//6
}
- (void) setDelegate:(id)newDelegate{
delegate = newDelegate;//3
}
@end
@interface SampleClass:NSObject<PrintProtocolDelegate>
- (void)startAction;
@end
@implementation SampleClass
- (void)startAction{
PrintClass *printClass = [[PrintClass alloc]init];//2
[printClass setDelegate:self];
[printClass printDetails];//4
}
-(void)processCompleted{
NSLog(@"Printing Process Completed");//7
}
@end
//委托的实现
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
SampleClass *sampleClass = [[SampleClass alloc]init];
[sampleClass startAction];//1
[pool drain];
return 0;
}
objective-c之委托
最新推荐文章于 2018-08-08 15:17:42 发布