objective c 协议  代理

来源:互联网 发布:网络调教女m的任务详细 编辑:程序博客网 时间:2024/05/16 07:40

1.可以代替继承方法2把代码放多个文件,便于多人协助

2.

// 延展是私有的 main  不提示出现  可以输出   别人看不到的  自己可以看到

@interface Student ()   //可以是空括号  就是必须实现延展中的方法   如果有可以不实现

- (void)aas;

@end


3.协议定义应该实现什么  不关心具体怎么实现,oc协议@protocol声明一组方法列表


4 协议的特点:

1..协议相当于确认类的父类      

2.可以规范类的行为

3.利于系统设计

4.利用团队开发等

5.是可选语法,并不是一定要使用协议


5.@required必须实现的

 @optional 可选实现的



6.代理是协议的一种具体应用,例如:卖房子去找中介 中介帮忙卖 中介就是代理



Computer   .h文件

#import<Foundation/Foundation.h>

@protocol USB <NSObject>

- (void)usb1;

- (void)usb2;

@end


@interface Computer : NSObject

@property (nonatomic,assign) id<USB>deleaget;

- (void)look;


@end



Computer   .m文件

#import "Computer.h"


@implementationComputer

@synthesize deleaget=_deleaget;


- (void)look

{

   [self.deleaget usb1];

   [self.deleaget usb2];

}


@end


U_panA    .h文件


#import<Foundation/Foundation.h>

#import "Computer.h"

@interface U_panA : NSObject<USB>

@end

U_panA    .m文件


#import "U_panA.h"


@implementationU_panA

- (void)usb1

{

    NSLog(@"USB1.0的速度慢");

}

- (void)usb2

{

    NSLog(@"USB2.0的速度快");

}


@end


U_panB    .h文件


#import<Foundation/Foundation.h>

#import "Computer.h"

@interface U_panB : NSObject<USB>


@end


U_panB    .m文件


#import "U_panB.h"


@implementationU_panB



- (void)usb1

{

    NSLog(@"USB3.0 存储速度快");

}

- (void)usb2

{

    NSLog(@"USB4.0 保存速度快");

}


@end



main 

#import<Foundation/Foundation.h>

#import "NSString+NSSleimu.h"

#import "NSMutableArray+NSdaoXu.h"

#import "Computer.h"

#import "U_panA.h"

#import "U_panB.h"

int main (int argc,const char *argv[])

{


    @autoreleasepool{

      Computer * com=[[Computer alloc]init];

      U_panA * ua=[[U_panA alloc]init];

      U_panB * ub=[[U_panB alloc]init];

      com.deleaget=ub;

       [comlook];

       NSLog(@"*****************");

      com.deleaget=ua;

       [comlook];


[ua release];

       [comrelease];

       [ubrelease];

   }

   return 0;

}


 

2012-08-0715:55:21.302 Oc_ds[665:707] USB3.0 存储速度快

2012-08-07 15:55:21.313 Oc_ds[665:707] USB4.0保存速度快

2012-08-07 15:55:21.314 Oc_ds[665:707]*****************

2012-08-07 15:55:21.314 Oc_ds[665:707]USB1.0的速度慢

2012-08-07 15:55:21.315 Oc_ds[665:707]USB2.0的速度快

原创粉丝点击