清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
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; }