协议

协议共分六步:
1. 声明协议
2. 声明代理人属性
3. 执行协议方法
4. 签订协议
5. 指定代理人
6. 实现协议方法
/****** **** * **** *** 声明协议的类 ***** **** * **** **** **** **** **/


/****** **** * **** *** 声明协议的类.h ***** **** * **** **** **** **** **/
#warning 协议第一步 声明协议
@protocol Marry < NSObject >

-(
void )makeMoney:( NSString *)text;

@end


#warning 协议第二步 声明代理人
@interface Girl : NSObject
@property ( nonatomic , assign ) id < Marry >myDelegate;
//assign 弱引用,不会对内存引起记数变化

-( void )getMessage:( NSString *)content;
@end
/****** **** * **** **** **** ** ****** **** * **** **** **** ******* **/



/****** **** * **** *** 声明协议的类.m ***** **** * **** **** **** **** **/
#warning 协议第三步 执行协议方法
@implementation Girl
-( void )getMessage:( NSString *)content
{

   
NSLog ( @"%@" ,content);

    // 使用代理人去执行协议方法
    [
self . myDelegate  makeMoney : @" 赶快去赚钱 !!!" ];
   
}
@end
/****** **** * **** **** **** ** ****** **** * **** **** **** **** **/



/****** **** * **** **** *执行协议的类 ** **** * **** **** **** **** **/


/****** **** * **** **** *执行协议的类.h **** * **** **** **** **** **/
#warning 协议第四步 签订协议
#import "Girl.h"
@interface Boy : NSObject < Marry >

-(void)sendMessageToGirl:(NSString *)content;
@end
/****** **** * **** ** **** * **** ****** **** * **** **** **** **** **/

/****** **** * **** **** *执行协议的类.m ** **** * **** **** **** **** **/
#warning 协议第五步 指定代理人
@implementation Boy
-(
void )sendMessageToGirl:( NSString *)content
{

   
Girl *aGirl = [[ Girl alloc ] init ];


    // 指定代理人,一定要找到声明协议类的对象,因为代理人是 Girl 的一个属性,所以用 Girl 对象调用属性 .
    aGirl.
myDelegate = self ; // 成为奴隶
    [aGirl
getMessage :content];
}


#warning 协议第六步 实现协议方法
-( void )makeMoney:( NSString *)text
{
   
NSLog ( @"%@" ,text);
}
@end
/****** **** * **** **** **** ** ****** **** * **** **** **** **** **/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值