——人类最倚重的是自己的“以往经验”。——

我们直接看一下在corePlot 类库和iOS自带类中为一个控件设置文本显示格式的实现。

  * corePlot 类库中,为一个对象设置标题显示格式

//创建一个“图表坐标系”  (估且称它为一个控件吧)
CPTXYGraph *graph3gL = [[ CPTXYGraph alloc ] initWithFrame:CGRectMake(, , , )]; //自定义“图表标题”的格式
CPTMutableTextStyle*textStyleTitle=[CPTMutableTextStyle textStyle];
textStyleTitle.color=[CPTColor blackColor];
textStyleTitle.fontSize=; graph3gL.title = @"测试用图表";
graph3gL.titleTextStyle = textStyleTitle; //设置 CPGraph 标题 的格式

         *ios 自带类库 为一个对象设置标题显示格式

UIButton *button = [[UIButton alloc]init];
button.titleLabel.text = @"测试用按钮";
button.titleLabel.textColor = [UIColor redColor];
button.titleLabel.font = [UIFont systemFontOfSize:14.0f];

我们看到,在corePlot类库中,设置控件标题格式的代码并没有写成如下形式:

graph3gL.titleTextStyle.font = 14.0f;      (两个 .  访问符)

而是写成了如下形式:

graph3gL.titleTextStyle = textStyleTitle;    (一个 . 访问符)

我们corePlot 的这种模式,称为“浅一层次的封装”,这种模式要求我们,在给一个对象赋予一个属性时,你很可能需要创建一个相应的“属性对象”(如上例所示,你需要创建一个 textStyleTitle 对象)。

corePlot 类库使用的这种模式,在很多开源项目中都有使用,了解这个特点后,我们在阅读开源项目时,可能会更佳轻松。

[原] corePlot 类库与iOS自带类库使用方法对比(很多开源代码都有这个特点)的更多相关文章

  1. iOS 常用三方类库整理

    iOS 常用三方类库整理 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://gi ...

  2. GCDAsyncSocket类库,IOS下TCP通讯使用心得

    关于在IOS下使用Socket进行通讯的技术文章也许诺很久了,今日又是一个还债的日子,网上虽然很多介绍过AsyncSocket或GCDAsyncSocket的文章,但其实就那么一两篇大部分都是转载,于 ...

  3. iOS 打包静态类库 lib.a

    iOS 打包静态类库 lib.a 流程 1: xcode---新建项目---iOS-framework&Library-----Cocoa touch Static Library----Ne ...

  4. iOS第三方常用类库

    1.AFNetworking AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人 ...

  5. TCP/IP以及Socket聊天室带类库源码分享

    TCP/IP以及Socket聊天室带类库源码分享 最近遇到个设备,需要去和客户的软件做一个网络通信交互,一般的我们的上位机都是作为客户端来和设备通信的,这次要作为服务端来监听客户端,在这个背景下,我查 ...

  6. 【类库】私房干货.Net数据层方法的封装

    [类库]私房干货.Net数据层方法的封装 作者:白宁超 时间:2016年3月5日22:51:47 摘要:继上篇<Oracle手边常用70则脚本知识汇总>文章的发表,引起很多朋友关注.便促使 ...

  7. ios自带的返回按键,点击不刷新页面

    1.因为是微信端页面,需要获取用户基本信息和设置微信分享朋友圈等功能,ios自带的返回键没有这个功能,导致config配置不成功,该隐藏的按钮没有隐藏. 解决方法,在子页面添加一下js代码即可.链接的 ...

  8. IOS自带输入法中文不触发KEYUP事件导致vue双向绑定错误问题

    先上图: 可以看到输入框中的内容和弹出框的内容不一致, <input class="am-fr labRight" id="txcode" type=&q ...

  9. Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法??

    Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法?? 1 framework 4.5 (10万个api)1 2 Jdk8   57M1 3 Gi ...

随机推荐

  1. API文档管理平台

    一.应用场景 在公司中,有很多开发,每个人维护的api接口是不一样的.如果有一个统一的api文档管理平台,每个开发,把自己维护的接口录入进去. 之后再开发别的功能时,不需要重复造轮子,直接调用就可以了 ...

  2. Chrome+XX_Net的上网渠道

    本页面将详细演示如何在一台全新的Windows7电脑上架设起Chrome+XX_Net的上网渠道. 本文包含以下部分: 下载和安装Chrome浏览器 获取和运行XX-Net 设置代理 手动导入证书(备 ...

  3. NOIP2015&2016普及组解题报告

    NOIP2015普及组题目下载 NOIP2016普及组题目下载 NOIP2015普及组题目: NOIP2018RP++ NOIP2016普及组题目 NOIP2018RP++ T1 金币\((coin. ...

  4. 【PAT】1016 部分A+B(15 分)

    1016 部分A+B(15 分) 正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​.例如:给定 A=3862767,D​A​​=6,则 A  ...

  5. 百度Webuploader 大文件分片上传(.net接收)

    前阵子要做个大文件上传的功能,找来找去发现Webuploader还不错,关于她的介绍我就不再赘述. 动手前,在园子里找到了一篇不错的分片上传的帖子,参考之后,踏出了第一步.此文记录我这次实践的点滴,仅 ...

  6. MySQL 相关知识细节及解析

    1,删除表中所有记录使用delete from 表名:还是用truncate table 表名 删除方式:delete 一条一条删除,不清空auto_increment记录数 truncate 直接将 ...

  7. Mermaid 学习

    基础 在 VS code 中安装插件 Markdown Preview Mermaid Support,则便可支持 Mermaid 流程图 flowchart graph LR; A-->B; ...

  8. 变量覆盖漏洞学习及在webshell中的运用

    一.发生条件: 函数使用不当($$.extract().parse_str().import_request_variables()等) 开启全局变量 二.基础了解: 1.$$定义 $$代表可变变量, ...

  9. Java 中的定时任务(一)

    定时任务简单来说就是在指定时间,指定的频率来执行一个方法,而在 Java 中我们又该如何实现呢? 想来主要有 3 种方式,最原始的方式肯定是开启一个线程,让它睡一会跑一次睡一会跑一次这也就达到了定频率 ...

  10. 「长乐集训 2017 Day10」划分序列 (二分 dp)

    「长乐集训 2017 Day10」划分序列 题目描述 给定一个长度为 n nn 的序列 Ai A_iA​i​​,现在要求把这个序列分成恰好 K KK 段,(每一段是一个连续子序列,且每个元素恰好属于一 ...