oc委托代理模式

xiaoxiao2021-02-28  129

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

转载请注明原文地址: https://www.6miu.com/read-37817.html

最新回复(0)