今天开始研究YYCategories的Foundation扩展类。

它包含了作者对14个Foundation框架的扩展。在详细研究每一个扩展类前我发现了一个小知识点。

NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END。

两个宏中间包含的属性,参数值,返回值,默认是 nonnull 类型.

如果想要某个属性,参数值或者返回值为可选类型,则单独在该属性,参数值,或者返回值前单独标明nullable.

下面开始说一下每一个扩展类的功能,具体原理怎么实现的就自己看代码吧。毕竟代码写的很详细了。

一、UIKit类

1.UIDevice+YYAdd  不常用有的都已近老了

2.UIScrollView+YYAdd 添加滑动到指定边界

3.UIGestureRecognizer+YYAdd 功能强大 但是长按需要设置一下 否则长按多次  而且常用的也就是点击和长按

4.UIColor+YYAdd 功能强大 但是一些东西不常用。用的多的是根据十六位进制生成颜色

5.UIFont+YYAdd 感觉用不到

6.UIBezierPath+YYAdd 用不到

7.UITextField+YYAdd 两个方法使用不了

8.UIBarButtonItem+YYAdd 不会用

9.UIImage+YYAdd

首先是一个加载动态图的方法、一个通过PDF获取图片的方法、一个通过emoji得到图片的方法、通过颜色获取图片的方法。

然后是一些修改图片的方法  这些在普通开发中不常用。只有在美颜相机中会遇到  不予考虑。

10.UIScreen+YYAdd 不常用有的都已近老了

11.UIApplication+WCYAdd.h 主要是一些属性提取出来很简单 自己看看就知道了

12.UIControl+YYAdd 主要是为UIbutton的父类UIcontrol做一些扩展。

13.UITableView+YYAdd 对系统的插入删除等方法进行了封装。

14.UIView+YYAdd 这个类首先是两个截屏功能,截屏转化pdf,移除子视图,坐标装换功能。

二、Foundation

1.NSArray+YYAdd

这个类前面对NSArray进行了扩展,可以从plist中得到数组

后面对NSMutableArray进行了扩展,可以从plist中得到数组。移除第一个最后一个数组。在开始或结尾或任意位置添加一个或多个元素。倒序输出数组等方法。

2.NSBundle+YYAdd 这个类我感觉功能不大,用不到

3.NSDate+YYAdd

主要是把时间的一些属性提取出来。并对时间进行了一些处理。

4.NSKeyedUnarchiver+YYAdd 归档解归档 这一块我用得少  就不做评价了

5.NSNumber+YYAdd 就讲了一个方法 字符串转化为NSNumber

6.NSObject+YYAddForARC  重新定义了一些arc方法

7.NSDictionary+YYAdd

首先是NSDictionary的扩展,先写了几个方法从plist中生成字典和转化plist。

然后是一个把字典key排序后输出为数组的方法,然后还有一个从xml中生成字典的方法。判断字典是否含有某个key的方法。爱人牛还设置了一些getter value的方法

下面是NSMutableDictionary的扩展,方法和上面的差不多。但是添加了两个修改方法。

8.NSNotificationCenter+YYAdd

这个类功能强大  新增了几个发通知的方法。可详细看看代码

9.NSObject+YYAddForKVO

这个类主要是对kvo的方法新添了个观察方法。

10.NSThread+YYAdd 添加了一个自动释放池

11.NSObject+YYAdd 这一块以后在了解。平时感觉用不到

12.NSTimer+YYAdd 为NSTimer新增两个方法。注释写的很清楚

13.NSString+YYAdd 主要是对字符串进行了加密处理。

14.NSData+YYAdd 主要是对数据进行了加密处理。

三、Quartz

1.CALayer+YYAdd  YYCGUtilities这两个类平时用不到。

YYCategories了解到这里就差不多了。

iOS---学习研究大牛Git高星项目YYCategories(四)的更多相关文章

  1. Git学习系列之Git基本操作提交项目(图文详解)

    前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...

  2. Git学习系列之Git基本操作克隆项目(图文详解)

    不多说,直接上干货! 想必,能进来看我写的这篇博文的朋友,肯定是了解过. 比如SVN的操作吧,最常见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commi ...

  3. 过万 star 高星项目的秘密——GitHub 热点速览 Vol.39

    作者:HelloGitHub-小鱼干 虽然国外十一并不过国庆,但是本周的 GitHub 也稍显疲软,GitHub 周榜的获 star 超过 1k 的项目寥寥无几,本周新开源的项目更是屈指可数.用 C ...

  4. 【转载】 github vue 高星项目

    内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★13489 - 饿了么出品的Vue2的web UI工具套件 Vux ★8133 - 基于Vue和 ...

  5. Git学习系列之Git基本操作推送项目(图文详解)

    前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...

  6. iOS学习网站及大牛网址(实时更新)

    iOS学习网站及大牛网址(实时更新) 学习网站 https://github.com/Tim9Liu9/TimLiu-iOS  自己总结的iOS.mac开源项目及库 https://github.co ...

  7. Git学习系列之Git基本操作拉取项目(图文详解)

    前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pu ...

  8. iOS学习-压缩图片(改变图片的宽高)

    压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...

  9. iOS学习——iOS项目Project 和 Targets配置详解

    最近开始学习完整iOS项目的开发流程和思路,在实际的项目开发过程中,我们通常需要对项目代码和资料进行版本控制和管理,一般比较常用的SVN或者Github进行代码版本控制和项目管理.我们iOS项目的开发 ...

  10. 【git学习二】git基础之git管理本地项目

    1.背景        git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. ...

随机推荐

  1. HRC 003 T3 置换

    题目链接 HRC 是啥 HZOI Regular Contest 前置知识 置换 轮换 \(60\space\text{pts}\) 解法 就像对于一个数,我们经常从素因子之积的角度看待它一样,在这道 ...

  2. Xamarin.Andorid 监听 EditText 回车事件

    EditText ET_Billcode.EditorAction += ET_Billcode_EditorAction; //执行方法 private void ET_Billcode_Edito ...

  3. java--jdbc优化

    BeanUtils组件 程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件. BeanUtils组件, 作用是简化j ...

  4. linux 终端词典

    不知道为什么我的电脑是 Ubuntu 16.04 的安装有道词典就是安装不上,古董版本你的 终端词典的安装参考了其他地方的文章 owl 首先这里所说的字典是工具书类的字典,是翻译工具 其次这里的字典是 ...

  5. 在服务器上安装 gitlab

    简介 RT 核心参考链接 https://about.gitlab.com/install/#ubuntu?version=ce https://www.cnblogs.com/zhujingzhi/ ...

  6. ItemTouchHelper拖动结束取得目标索引位置

    重写 clearView 要想取得目标索引位置,需要找到拖动结束,松开鼠标后的调用方法 //拖动完成之后调用,所操作的viewHolder即为目标位置的项目 @Override public void ...

  7. ETLCloud:新一代ETL数据抽取工具的定义与革新

    数据集成.数据治理已经成为推动企业数字化转型的核心动力,现在的企业比任何时候都需要一个更为强大的新一代数据集成工具来处理.整合并转化多种数据源. 而ETL(数据提取.转换.加载)作为数据管理的关键步骤 ...

  8. API快速开发,低代码开发平台

    低代码开发平台让API开发效率快速提升,RestCloud低代码开发平台提供高效率开发环境,普通工程师只需要简单的技术就可以快速完成系统的开发.低代码开发平台可与第三方软件无缝集成,可以快速的开发企业 ...

  9. Python MP3 归一化器和长度分割器实用工具开发指南

    引言 在数字音频处理领域,MP3文件作为最流行的音频格式之一,其音量标准化和文件分割是两个常见的需求场景.许多用户都遇到过下载的MP3文件音量过小需要调整,或者需要将长音频文件分割成更小片段以便于管理 ...

  10. SQL Server数据库中OpenQuery是干什么用的-九五小庞

    SQL Server数据库可以创建[链接服务器],可以根据不同的数据源链接不同的数据库,常见的可以链接对象有Oracle ,Mysql等等. 举例,SQL Server链接上Oracle数据库后,如何 ...