[OC] 链式语法
我们新建了一个类,叫做
OJClass (这可以是 ViewController,UIView,NSObject 等各种类型的类,这里我们把它以UIView进行举例)
现在我们想要用链式语法的方式来设置这个类,比如下面这样:
OJClass.setOJTitle(@"三体").setOJSecondTitle(@"面壁计划").setOJBackgroundColor([UIColor blackColor]);
首先,我们在 OJClass.h 的 interface 中定义上述几个属性(实际上都是block)
@interface OJClass : UIView /*
- (类名 *(^)(传入数据类型 传入变量名)) 属性block名称;
*/ //设置大标题
- (OJClass *(^)(NSString *title)) setOJTitle;
//设置小标题
- (OJClass *(^)(NSString *secondTitle)) setOJSecondTitle;
//设置背景色
- (OJClass *(^)(UIColor *color)) setOJBackgroundcolor; @end
在 OJClass.m 中进行这几个block的实现:
@implementation OJClass
......... - (OJClass *(^)(NSString *title)) setOJTitle
{
return ^id(NSString *title){
//此处只是做示范,用传入的参数执行操作,然后return self;
self.titleLbl.text = title;
return self;
};
} - (OJClass *(^)(NSString *secondTitle)) setOJSecondTitle
{
return ^id(NSString *title){
//此处只是做示范,用传入的参数执行操作,然后return self;
self.secondTitleLbl.text = secondTitle;
return self;
};
} - (OJClass *(^)(UIColor *color)) setOJBackgroundColor
{
return ^id(UIColor *color){
//此处只是做示范,用传入的参数执行操作,然后return self;
self.backGroundColor = color;
return self;
};
} @end
完毕。
[OC] 链式语法的更多相关文章
- 如何在Objective-C中实现链式语法
在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样: 1 2 3 4 5 6 7 8 UIEdgeInsets padding = UIEdgeInsetsMak ...
- jquery html标签的链式语法
<div id="ProductNet"> <table border='0' cellspacing='2' cellpadding='0' style='te ...
- 如何在Objective-C中实现链式语法?
在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样: 1 2 3 4 5 6 7 8 UIEdgeInsets padding = UIEdgeInsetsMak ...
- jQuery链式语法演示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- javascript链式语法
因为 jQuery 库的缘故,链式语法在前端界变得非常流行.实际上这是一种非常容易实现的模式.基本上,你只需要让每个函数返回 'this',这样其他函数就可以立即被调用.看看下面的例子. var bi ...
- jquery链式语法
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- Objective-C 链式语法的实现
对于 Objective-C 的语法,喜欢的人会觉得它是如此的优雅,代码可读性强,接近自然语言,开发者在调用大多数方法时不需要去查看注释或文档,通常只凭借方法名就可以大致知道这个方法的作用,可以理解为 ...
- 谈谈 Objective-C 链式语法的实现
引言 对于 Objective-C 的语法,喜欢的人会觉得它是如此的优雅,代码可读性强,接近自然语言,开发者在调用大多数方法时不需要去查看注释或文档,通常只凭借方法名就可以大致知道这个方法的作用,可以 ...
- Delphi Sysem.JSON 链式写法(转全能中间件)
链式写法有很多优点:连贯.语意集中.简洁.一气呵成.可读性强.比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() ...
- Delphi Sysem.JSON 链式写法
链式写法有很多优点:连贯.语意集中.简洁.一气呵成.可读性强.比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() ...
随机推荐
- react lodash节流this找不到正确用法
if (!this.throttleLoadDicom) { this.throttleLoadDicom = throttle(this.loadDicomFun, 800, { leading: ...
- QT-groupBox组件内的组件失去交互功能
属性设置: 首先 然后 可以实现.
- Codeforces Round #827 (Div. 4) 复盘+题解
原比赛链接 复盘: ABC签到,手速太慢了. D捣鼓了好久才想起来从更小的值域出发去做. E简单二分答案. 然后就time out了.D题搞错方向浪费太久时间了. F思维题,考虑到初值.字符集,然后是 ...
- IIS7无法访问.apk文件的解决方法
随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法访问下载此 ...
- 创建一个httpserver、httpclient
最近因为要和java进行通信.约定好使用http协议进行消息传递.在网上找了很久server编写发现有个博主写的很详细,因此把东西记录下来以便下次使用.这是原博主网址:https://blog.csd ...
- (0319) uvmgen的使用,产生的UVM环境介绍
qq https://blog.csdn.net/hh199203/article/details/118210541
- Android学习——控件Notification
1.创建Notification和NotificationManager 2.NotificationChannel 3.常用方法说明
- 关于protobuf报错'tr1/unordered_map' file not found
这个问题的话,查了很多资料,总的来说就是C++版本的问题,新版本的namespace结构变化了,C++库的层级结构变化了 1.config.h HASH_MAP_H HASH_SET_H 新版本 ...
- ucocIII野火
5.1裸机系统 5.1.1 轮询系统 轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地做各种事情.轮询系统是一种非常简单的软件结构,通常只适用于那些只需 ...
- openwrt通过gre回源
创建 ip tunnel add GRE网卡名 mode gre local 本地LAN IP remote SERVER LAN IP ttl 255 ip link set GRE网卡名 up ...