[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() ...
随机推荐
- boss直聘上看信息 但是不会显示已读
大家在boss直聘上看 想看的boss回你的信息但是又不想显示已读 可以按F12 打开控制台 查找标出文件 查看lastmsg文本里面就是最后一次发你的信息
- 初学银河麒麟linux笔记 第一章 虚拟机、麒麟系统、QT安装与运行
由于手头一个项目的QT软件开发需要在银河麒麟系统上运行,借此机会开始从头学习linux系统 首先下载虚拟机VMware 16和麒麟系统iso,这里参考的 https://blog.51cto.com/ ...
- HIVE- concat方法
(1)concat_ws() select user ,concat_ws(';' , collect_set(cast(amt as string))) as amt from table grou ...
- 容器逃逸 --with docker.sock
容器逃逸 --with docker.sock 本人对于容器逃逸的基本理解就是用户从容器中逃出去到宿主机里去了. 本文意在记录一个使用 docker.sock 来进行容器逃逸的方法. 首先随便来个镜像 ...
- linux安装oracle客户端
下载客户端软件 客户端下载地址 链接:https://pan.baidu.com/s/1StXjSjQ_6wRuwj4tewRlaA 提取码:8ynu sqlldr工具 链接:https://pan. ...
- (原创)Onlyoffice docs docker实例安装示例后,打开文档提示:文档下载失败
不能使用localhost.请用本机ip访问
- zookeeper在关闭服务时报could not find file /opt/module/zookeeper-3.5.10/zkData/zookeeper_server.pid
遇到了个问题,zookeeper在执行 bin/zkServer.sh stop时 会报题目中的错误,我搜了一下博客,好像是因为第一次启动的不是zkServer.sh中的服务 我先 kill -9 加 ...
- pytest设计项目结构
api目录封装所有的接口 testcases目录写所有的测试用例.conftest全局登录前置操作 data目录测试数据 common或者utils目录.存放公共模块比如读取yml文件.连接数据库.所 ...
- 微信小程序搜索排名权重!
最后,再介绍一下排名权重的计算比例: 1.小程序上线时间(占比5%) 2.描述中完全匹配出现关键词次数越多,排名越靠前(10%) 3.标题中关键词出现1次,且整体标题的字数越短,排名越靠前(35%) ...
- Outlook怎么合并相同邮件?设置Outlook邮件为对话模式
选择View->勾选"Show as Conversations", 这样同一个标题的邮件就是叠在一块显示了. 不蟹,bro.