1 委托者
.h
#import <Foundation/Foundation.h> #import "Printf.h" @interface Computer : NSObject /* 1 nonatomic 线程不安全的(可能存在多个线程同时操作同一个数据) 2 atomic 线程安全的 3 strong 修饰oc的对象类型,,饮用计数值会加一,一般用在arc环境 4 retain 作用同行,一般在mrc环境 5 assign 可以修饰对象,计数值不变:修饰基本数据类型,基本数据必须用assign修饰 6 copy 用于不可变NSString对象,表示深复制(完全独立) 7 readonly 只读 */ // 设置该委托类的代理对象 @property(nonatomic, assign)id<Printf> delegate; -(void)startPrint; @end
.m #import "Computer.h" @implementation Computer -(void)startPrint { // 判断当前对象能不能响应该方法 if([self.delegate respondsToSelector:@selector(printFiles)]){ [self.delegate printFiles]; } } @end
2 代理
.h
import <Foundation/Foundation.h> #import "Printf.h" @interface HpPrinter : NSObject<Printf> @end
.m
import "HpPrinter.h" @implementation HpPrinter -(void)printFiles { NSLog(@"Print is over !"); //[NSThread] } @end
3 协议
.m
@protocol Printf <NSObject> -(void)printFiles; @end
