iOS 开发中,或多或少接触过这三个东西,但是以前只是知道使用它们,但是它们之间有什么区别或每个有什么不可替代的功能,今天来总结一波。分类(category)iOS在2.0就已经推出分类(Category),它允许开发者在不改动原有类的情况下,对该类进行扩展使用。分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体的指针。原则上它只能增加方法,不能增加成员(实例)变量,具体
一、类目: 类目:也称类别分类。 类目:类别(category)是对于一个功能完备的类的一种补充,就像是一个东西基本的功能都完成了,可以用类别为这个类添加不同的组件,使得这个类能够适应不同的情况的需求。类目可以为一个现有的类扩展新的方法,扩展的方法会成为原始类的一部分,子类可以继承通过类目扩展的方法。oc语言的一个特性,可以在不改变类名和原来类的实现的前提下,实现对类的方法的扩展。 类别文件
转载 2024-02-26 22:55:18
79阅读
类别和协议是Obj-C中比较显著的特性,类别的功能主要是为了实现类的扩展,协议则体现了Obj-C的多态性,经常被用在代理的实现上。1. 类别类别其实挺容易理解的,针对的情况就是,比如说我们设计了一个电脑的类叫做myComputer,原有三个方法分别是:startUp、shut down和restart,但后来又觉得不够完善,于是需要加入sleep、login、systemUpdate等,可是现在的
iOS 类别分类的分析与解决方案 在iOS应用开发中,类别(Category)和分类(Extension)是两个强大的特性。它们使得开发者可以在不修改原有类的情况下,扩展现有类的功能。本篇文章将从多个角度解析如何有效利用这两种特性,以提升代码的复用性和模块化程度。 ## 背景定位 ### 业务场景分析 在我们的开发流程中,随着业务需求的不断增加,代码量也随之激增。在管理复杂的项目时,如何
原创 6月前
38阅读
postgresql 查询序列_一文看懂PG三大隔离级别--读已提交、可重复读、可序列化 概述今天主要介绍一下PG的事务隔离,事务隔离和锁机制是息息相关的,希望大家这两块都可以掌握。下面先看下SQL标准的四种隔离级别。四种隔离级别SQL标准定义了四种隔离级别。最严格的是可序列化,在标准中用了一整段来定义它,其中说到一组可序列化事务的任意并发执行被保证效果和以某种顺序一个一个执行这些事务一
转载 2023-07-20 11:07:28
79阅读
 黑马程序员-iOS基础-Objective-C基础(四)OC开发技巧及核心语法(上) 一、开发技巧1、NSStringOC字符串也是一个对象,继承自NSString类如:NSString *_name; @"daflkg;gagr" 创建NSString字符串的方法//NSString字符串的第一种创建方式 NSString *str=@"itcast"; //创建OC字符串
面向过程、面向对象 的区别? 面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 类别的作用?继承类别在实现中有何区别? 答案:category:可以在不获悉,不改变原来代码的情况下往
转载 2024-01-15 17:07:46
54阅读
版本Xcode 8.3.2一、分类Category这里称分类(另说类别、类目)。 分类的作用:扩展已有类(包括系统类)的功能。比如给NSString增加一个字符串反转的方法。你可能想到了,用继承也可以增加这个功能。那为什么又搞出个分类呢?不妨来对比一下。1、继承Inherit VS 分类Category继承继承特点: 1)子类可以扩展自己特有的属性(包括新增成员变量),但是不能访问父类的私有成
转载 2023-09-07 23:50:49
98阅读
一.类别和类扩展的区别  1.类别(Category)是一种可以为现有的类,添加新方法的方式无需从现有的类继承子类。类别添加的新方法可以被子类继承。  注:继承(inheritance)无法为一个类簇创建子类。类别不能添加实例变量。  类别的局限性   ①无法向现有的类中添加新的实例变量(类别没有位置容纳实例变量);&
一、什么是分类?概念:分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体指针。根据下面源码组成可以看到它没有属性列表,原则上是不能添加成员变量(其实可以借助运行时功能,进行关联),只能增加方法。 typedef struct objc_category *Category; struct objc_category { char *category_name OBJC2_U
### iOS中的继承类别的区别 在iOS开发中,继承类别是两个非常重要的概念,这两个概念在Objective-C和Swift编程语言中都存在。对于刚入行的开发者来说,理解它们的区别和使用场景是非常重要的。这篇文章将帮助你理解iOS中的继承类别的区别,并通过具体的示例代码来阐明每个概念的应用。 #### 一、基础概念 - **继承**:继承是面向对象编程(OOP)中的一个基本特性,它允
原创 9月前
40阅读
第一讲  分类与延展 1、分类概念及作用       Category有很多种翻译: 分类 \ 类别 \ 类目 (一般叫分类)       Category是OC特有的语法       类别的作用         再不修改原有的类的基础上增加新的方
大家好,我是OB!今天来聊聊Runtime和四剑客(Category、Extension、load、initialize)爱恨情仇!一、category1、category中的方法会覆盖主类的方法吗先创建一个Person类和先看现象 编译时我们可以发现,主类先开始compile,然后才是compile 分类。所以从两个角度说:a:宏观(现象)角度:分类会覆盖主类的方法!当分类和主类同时实现- (v
一、类目的简单介绍1.什么是类目(类别)类别( category )是 Objective-C 语言的新特性,为现有的类添加新方法的方式。比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现,用类目就可以实现在没有类的源代码的条件下为类增加新的方法。通过类目加入的方法会成为原始类的一部分。例如:通过类目想NSString增加方法,编译器会把这些方法加到NSString的定义
分类、扩展和关联对象一、分类与扩展的区别1、`category`类别分类)2、`extension`(类扩展)二、关联对象的实现1.关联对象的实现步骤:2.关联对象分析:三、关联对象-设值流程1.四个核心对象:2.`objc_setAssociatedObject`解析:内存策略:`_object_set_associative_reference`源码如下:3.`AssociationsMa
转载 2023-10-23 10:07:45
101阅读
类的继承简单理解:某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息。 基本概念 继承:一个类从另一个已有的类获得其特性,称为继承。 派生:从一个已有的类产生一个新的类,称为派生。 继承和派生,其实只是从不同的方向(角度)来表述,本质上就是一个
继承和多重代理在swift的语言层面上是不支持的,但我们有时会遇到这样的问题:类B和C分别继承自A,B1和B2继承自B,C1和C2继承自C.现在我们需要在B1和C1中添加相同的方法,怎么去做?使用继承的话只能在类A中添加,但这样做的结果是基类A会越来越臃肿,最后变成上帝类God Class,维护起来会很困难.在实现完某个代理后发现,我们还要在其他页面中获取数据.例如,IM消息接收之后要在多个地方
转载 2023-07-25 08:19:42
137阅读
最近乱点了篇博客关于分类和类扩展, 博主总结得乱七八糟,虽然这知识点太过久远,还是我来谈谈iOS中Categories(分类)、Extensions(类扩展)和继承的区别 吧。简单的讲,通过Categories(分类)即使在没有某个系统类源代码(iOS不开源的)的情况下,也可以为这个类添加新的方法声明。而新方法的实现可以在另外的文件中。其语法举例如下: #import "ClassNa
转载 2023-07-25 00:00:44
103阅读
Day 0101-分类继承的区别分类:增加方法,不能增加变量.但是可以访问类的变量继承:子类继承了父类所有的方法和变量继承能增加变量和方法,分类只能增加方法,不能增加变量.继承会产生一个新的类.分类不会产生新的类.同名的方法,分类里面优先调用02-分类与类扩展的区别类扩展:可以添加属性声明,添加的方法声明,匿名的分类分类不能添加属性,只能添加方法Day 02//retain mrc stro
iOS OC 类原理一1. `类`和`元类`的创建时机1.1 打印 `类`和`元类`的指针1.2 `command + B`生成可执行文件,然后使用 `MachoView` 打开程序二进制可执行文件查看2. 指针偏移2.1 普通指针 值拷贝2.2 指针拷贝2.3 指针偏移3. 类的结构3.1 类的结构是什么?3.2 类的结构分析通过对`类`结构的分析,得出:`成员变量`存在`ivars`中,`属
转载 2024-01-02 15:26:03
38阅读
  • 1
  • 2
  • 3
  • 4
  • 5