美文网首页
OC-分类、block

OC-分类、block

作者: 萤火虫儿飞_ | 来源:发表于2018-03-31 11:01 被阅读8次

分类的概念

Category:类别、类目、分类、非正式协议

分类的作用

将一个类中的不同方法分到多个不同的文件中存储,便于对类进行模块化设计和团队开发。

可以在不修改原来类的基础上,为这个类扩充一些方法。

注意:

分类中只能增加“方法”,不能增加成员变量

分类中可以访问原来类中的成员变量

最主要的作用:给系统自带的类扩展方法

使用分类的目的

对现有类进行扩展

比如,可以扩展Cocoa      touch框架中的类,你在类别中增加的方法会被子类所继承,而且在运行时跟其他的方法没有区别

作为子类的替代手段

不需要定义和使用一个子类,你可以提过类别直接向已有的类里增加方法

对类中的方法归类

利用category把一个庞大的类划分为小块来分别进行开发,从而更好的对类中的方法进行更新和维护

分类的使用流程

声明分类-->实现分类-->使用分类

注意:分类的命名规则:类名+扩展方法,如“NSString+countNum”。

      分类的接口声明与类的定义十分相似,但分类不继承父类,只需要带有一个括号,表明该分类的主要用途。

注意:

当分类与主类都有同一个方法时,优先调用分类中的方法

当多个分类中都有同样一个方法时,优先调用最后一个参与编译的分类中的方法。

分类和类扩展的区别:

类别中只能增加方法;

是的,你没看错,类扩展不仅可以增加方法,还可以增加实例变量(或者合成属性),只是该实例变量默认是私有类型的(作用范围只能在自身类,而不是子类或其他地方);

类扩展中声明的方法没被实现,编译器会报警,但是类别中的方法没被实现编译器是不会有任何警告的。这是因为类扩展是在编译阶段被添加到类中,而类别是在运行时添加到类中。

类扩展不能像类别那样拥有独立的实现部分(@implementation部分),也就是说,类扩展所声明的方法必须依托对应类的实现部分来实现。

定义在

    .m 文件中的类扩展方法为私有的,定义在 .h 文件(头文件)中的类扩展方法为公有 的。类扩展是在 .m 文件中声明私有方法的非常好的方式。

Block的概念及基本使用

定义

block是iOS中一种比较特殊的数据类型

block是苹果官方特别推荐使用的数据类型,应用场景比较广泛

使用场合

动画

多线程

集合遍历

网络请求回调

作用

用来保存一段代码,可以在恰当的时间在取出来调用

函数与block

函数写法

Void myBlock()

{

NSLog(@"dsddf");

}

block写法

Void (^myBlock)() = ^(){

NSLog(@"dsdad");

}

相关文章

  • OC-分类、block

    分类的概念 Category:类别、类目、分类、非正式协议 分类的作用 将一个类中的不同方法分到多个不同的文件中存...

  • OC-关于Block

    参考文章:iOS block,你要看的这都有,block没那么难 一、Block写法 1、属性 2、typedef...

  • iOS开发之Block原理探究

    Block概述 Block本质 Block调用 Block分类 Block循环引用 Block原理探究 Block...

  • Block的类型划分

    block如何分类?其实blcok的分类主要是根据block的内存管理来说的,系统把Block分为3类:NSGlo...

  • iOS Block

    Block的分类 Block有三种类型:全局Block,堆区Block,栈区Block 全局Block 当Bloc...

  • CSS 2.5 HTML元素分类

    按默认样式分类块级 block行内 inlineinline-block 对外inline 对内block

  • block 底层原理

    一、block 简介 1.1 block 分类 NSGlobalBlock:位于全局区。在 Block内部不使用外...

  • block学习笔记

    原文发布在个人博客 clang工具 block分类 block 结构 block调用 block类型以及ARC对b...

  • iOS Block 部分二

    主要讲解 Block 的分类和变量捕获的强弱引用; Block部分一Block部分二Block部分三Block知识...

  • OC底层原理探索—block(上)

    block分类 全局block __NSGlobalBlock__:位于全局区,在Block内部不使用外部变量,或...

网友评论

      本文标题:OC-分类、block

      本文链接:https://www.haomeiwen.com/subject/iulgcftx.html