OC语言 block 和 代理模式

来源:互联网 发布:win7设置网络连接 编辑:程序博客网 时间:2024/05/17 03:33

block是OC的一种存储结构,用来存储一段代码,十分类似C语言中的函数指针,而代理模式的精髓我觉的就是弄清楚谁拥有一个代理,就是谁是Boss,谁是“奴才”。

我创建了Student类 ,由于不能像Xcode分开写就直接码在这里了,想用的可以自己去创建类

student.h

#import <Foundation/Foundation.h>

@class Student;


@protocol findRoom <NSObject>

//    创建出来一个协议中的方法,可以交给代理使用,每个代理都可以使用,减少了代码的冗余

- (void) findRoomForStudent : (Student *) student;


@end


@interface Student :NSObject

//    创建一个代理对象,代理可以是任何人,但必须遵守我的协议

@property (nonatomic ,assign) id<findRoom> delegate;


- (void) findRoomForMe;


@end

student.m

#import "Student.h"


@implementation Student


- (void)findRoomForMe

{

    NSLog(@"我要找房子");

//    自己的代理给自己找房

    [self.delegatefindRoomForStudent:self];

}


@end


最后自己创建代理的对象,并且调用就可以实现代理模式的简单调用了,基本含义也就是这个了

0 0
原创粉丝点击