我们新建了一个类,叫做

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] 链式语法的更多相关文章

  1. 如何在Objective-C中实现链式语法

    在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样: 1 2 3 4 5 6 7 8 UIEdgeInsets padding = UIEdgeInsetsMak ...

  2. jquery html标签的链式语法

    <div id="ProductNet"> <table border='0' cellspacing='2' cellpadding='0' style='te ...

  3. 如何在Objective-C中实现链式语法?

    在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样: 1 2 3 4 5 6 7 8 UIEdgeInsets padding = UIEdgeInsetsMak ...

  4. jQuery链式语法演示

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. javascript链式语法

    因为 jQuery 库的缘故,链式语法在前端界变得非常流行.实际上这是一种非常容易实现的模式.基本上,你只需要让每个函数返回 'this',这样其他函数就可以立即被调用.看看下面的例子. var bi ...

  6. jquery链式语法

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  7. Objective-C 链式语法的实现

    对于 Objective-C 的语法,喜欢的人会觉得它是如此的优雅,代码可读性强,接近自然语言,开发者在调用大多数方法时不需要去查看注释或文档,通常只凭借方法名就可以大致知道这个方法的作用,可以理解为 ...

  8. 谈谈 Objective-C 链式语法的实现

    引言 对于 Objective-C 的语法,喜欢的人会觉得它是如此的优雅,代码可读性强,接近自然语言,开发者在调用大多数方法时不需要去查看注释或文档,通常只凭借方法名就可以大致知道这个方法的作用,可以 ...

  9. Delphi Sysem.JSON 链式写法(转全能中间件)

    链式写法有很多优点:连贯.语意集中.简洁.一气呵成.可读性强.比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() ...

  10. Delphi Sysem.JSON 链式写法

    链式写法有很多优点:连贯.语意集中.简洁.一气呵成.可读性强.比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() ...

随机推荐

  1. yagmail 邮件模块

    安装 yagmail 安装yagmail:https://coding.net/s/01e2c2fe-82c0-4e05-a31b-f3e9e2dbc43a 下载完成之后,cmd 切换到文件目录下,执 ...

  2. Java基础-运算符、包机制、JavaDoc生成文档

    运算符 Java语言支持如下运算符:优先级() 算术运算符:+,-,*,/,%,++,- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof 逻辑 ...

  3. OS-lab4

    OS-lab4 系统调用 系统调用的流程 按照上述的流程逐个分析. user/syscall_lib.c 这个文件位于user文件夹下,也就是用户程序可以调用的函数,相当于操作系统提供给用户程序的一些 ...

  4. 数字图像处理 day1

    第一节 什么是图像 f(x y z λ t)z 立体  入 彩色 t 活动 f(x y) 静止的  单色 二值图像  黑白图像  灰度图像  彩色图像  点云图像 多光谱图像     我的理解是  建 ...

  5. 正整数n型方阵

    正整数n型方阵(不用数组完成) 一般呢这种n型方阵很多人都是用数组完成,今天呢小编就用简单的循环控制结构来完成,不需用到数组.题目:从键盘输入一个正整数n,根据n形成一个方阵.方阵最外层是第一层,每层 ...

  6. 大数据开源平台CDH 集群(CM6.3.1 + CDH 6.3.2)的部署

    一,概述 我依照博文:https://www.cnblogs.com/liugp/p/16286645.html ,进行了CDH集群的部署.总体来说,基本比较顺利. 在部署过程中,发生了一些小问题.本 ...

  7. Linux下安装MongoDB的Database Tools并配置

    安装tools以使用导入导出功能.解决mongodump: command not found #下载 wget https://fastdl.mongodb.org/tools/db/mongodb ...

  8. 13-之容器资源需求、资源限制及Metric-server(Heapster)

    目录 容器资源需求.资源限制及Heapster Heapster 资源指标API及自定义指标API k8s-promtheus监控部署 node-exporter prometheus kube-st ...

  9. 解决pdf电子签章显示问题(电子发票)

    在/build/pdf.worker.js注释掉一行代码 if (data.fieldType === "Sig") { data.fieldValue = null; // 注释 ...

  10. 链路状态通告类型知识学习总结,LSA(Link State Advertisement)

    链路状态通告类型知识总结,LSA(Link State Advertisement) 一.相关解释,个人相关看法: OSPF是通过LSA数据报文来联系关联路由器,交换信息,同步数据,在此基础上,各路由 ...