Objective-C中实现链式语法 解释
来源:互联网 发布:windows xp 精简版 iso 编辑:程序博客网 时间:2024/06/05 23:43
#import <Foundation/Foundation.h>
@interface ClassA : NSObject
@end
@interface ClassB : NSObject
- (id)initWithString:(NSString *)str;
@end
#import "ClassA.h"
@class ClassB;
@interface ClassA ()
@property (nonatomic,readonly)ClassA *(^aaa)(BOOL eblne);
@property (nonatomic,readonly)ClassA *(^bbb)(NSString * str);
@property (nonatomic,readonly)ClassB *(^ccc)(NSString * str);
@end
@implementation ClassA
- (ClassA *(^)(BOOL))aaa
{
return ^(BOOL eblne){
if (eblne) {
NSLog(@" is YES");
}else
{
NSLog(@" is NO");
}
returnself;
};
}
- (ClassA *(^)(NSString *str))bbb
{
return ^(NSString * str){
NSLog(@"str:%@", str);
returnself;
};
}
// 这里返回了ClassB的一个实例,于是后面就可以继续链式 ClassB的 block 方法
// 见下面例子 .ccc(@"Objective-C").ddd(NO)
- (ClassB *(^)(NSString * str))ccc
{
return ^(NSString *str) {
//code
NSLog(@"b %@", str);
ClassB * b = [[ClassBalloc] initWithString:str];
return b;
};
}
@end
@interface ClassB ()
@property(nonatomic,readonly)ClassB*(^ddd)(BOOL eblne);
@end
@implementation ClassB
- (id)initWithString:(NSString *)str
{
returnself;
}
- (ClassB*(^)(BOOL eblne))ddd
{
return ^(BOOL eblne){
if (eblne)
{
NSLog(@"classB yes");
}else
{
NSLog(@"classB no");
}
returnself;
};
}
// 最后我们可以这样做
//id a = [ClassA new];
//a.aaa(YES).bbb(@"HelloWorld!").ccc(@"Objective-C").ddd(NO);
- Objective-C中实现链式语法 解释
- Objective-C中实现链式语法 解释
- 谈谈 Objective-C 链式语法的实现
- Objective-C中Block语法
- Objective C 链式调用
- Objc实现链式语法
- Objective-C Block语法递归函数实现
- Objective-C Block语法递归函数实现
- iOS利用block实现链式编程方法(Objective-C链式编程)
- Objective-c中使用字面量语法
- Objective-C 语法规范
- Objective-c语法速成
- objective c 语法记录
- Objective-C 基础语法
- Objective-c基本语法
- Objective-C 语法
- Objective-C 语法
- Objective C基本语法
- C语言代码重构
- 弹出一个含有确定和取消按钮的对话框
- android 图片圆角化处理,支持xutil 加载网络图片
- phpadmin 的三种登录方式
- 黑马程序员——异常处理(2)
- Objective-C中实现链式语法 解释
- [Android Debug] app:dexDebug
- MFC 对话框字体设置
- 轻松解决U盘exe病毒
- php获得mac地址
- oracle创建表空间
- NULL 和 nullptr
- android(2) 功能引导界面实现
- 使用Eclipse开发WebLogic WebService服务端和客户端