普通用法:
- (void)run;
- (void)study;
- (void)run{
NSLog(@"run");
} - (void)study {
NSLog(@"study");
}
對(duì)象方法用法:(返回對(duì)象指針)
-(Person)run1;
-(Person)study1;
- (Person*)run1 {
NSLog(@"run");
return [[Person alloc] init];
} - (Person*)study1{
NSLog(@"study");
return[[Person alloc]init];
}
block方法用法:(使用block 返回對(duì)象指針)
- (Person* (^)(void))runBlock;
- (Person* (^)(NSString *))studyBlock;
-(Person (^)(void))runBlock{
Person (^block)(void) = ^() {
NSLog(@"run");
return self;
};
return block;
}
-(Person *(^)(NSString ))studyBlock{
Person (^block)(NSString *) = ^(NSString *string ){
NSLog(@"%@",string);
[[[self run1] study1] runBlock];
return self;
};
return block;
}
合成存取器用法:(block返回類對(duì)象)
get 方法 類.m 實(shí)現(xiàn)邏輯
Person*person = [[Person alloc]init];
[[[person.myBlock(@"sssss") run1] study1] run];
//"點(diǎn)"語(yǔ)法調(diào)用類對(duì)象方法,進(jìn)行多個(gè)地方修改。
將block 的a(); 賦值 ,a = ^(){}; 實(shí)現(xiàn),反過(guò)來(lái),在.m中g(shù)et實(shí)現(xiàn)回調(diào), 類外使用a();調(diào)用block 使用。
就是:
block回調(diào)反向使用,先實(shí)現(xiàn)后賦值,可以在類里面進(jìn)行多個(gè)地方調(diào)用修改。
@property(nonatomic,copy)Person* (^myBlock)(NSString string);
@property(nonatomic,copy)Person (^voidBlock)(void);
-(Person * (^)(NSString ))myBlock{
Person (^block)(NSString *) = ^(NSString *string){
[self run];
NSLog(@"____%@",string);
return self;
};
return block;
}
-(Person *(^)(void))voidBlock{
Person *(^block)(void) = ^(){
return self;
};
return block;
}