微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

block实现代理

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

block类似于函数指针,能实现函数回调,
下面是一个男朋友委托女朋友洗衣服的简单代理:
分析:Man是被代理,需要委托Girl对象
如果要实现回调,Man需要有一个block类型的对象,并拥有block的调用,而Girl是代理方,要实现洗衣服这件事,Girl需要有block的代码实现部分
具体代码如下:
//  Man.h
#import <Foundation/Foundation.h>

typedef void (^Funblock)(NSInteger);

@interface Man : NSObject

@property(nonatomic,copy)Funblock myblock;

-(void)ask;
@end
//  Man.m

#import "Man.h"

@implementation Man

-(void)ask{

    _myblock(10);
}
@end
//  Girl.h

#import <Foundation/Foundation.h>

@interface Girl : NSObject

-(void)wash;
@end
//  Girl.m

//
#import "Girl.h"
#import "Man.h"
@implementation Girl

-(void)wash{
    Man *m=[[Man alloc] init];
    m.myblock=^(NSInteger count){
        NSLog(@"洗了%ld件衣服",count);
    };
    [m ask];
}
@end
//  main.m
#import <Foundation/Foundation.h>
#import "Man.h"
#import "Girl.h"
int main(int argc,const char * argv[]) {
    @autoreleasepool {
        // insert code here...
       
        Girl *g=[[Girl alloc] init];
        [g wash];
        
    }
    return 0;
}

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐