一 Category分类:Category(类目,类别) (OC有)命名:原来的类+类别名(原来的类名自动生成,只要写后面的类别名,一般以模块名为名。比如原来类 Person,新建分类 Ct,新建的分类名为 Person+Ct )作用: 在不改变原来类的内容的情况下,可以给原来的类添加一些新的方法。注意:1)分类只能增加方法,不能增加成员变量。2)分类方法的实现中,可以访问原来类中的成员变量。3)
转载
2024-06-04 05:53:47
57阅读
# iOS分类重写方法实现指南
## 介绍
在iOS开发中,我们经常会使用分类来对现有的类进行扩展和重写方法。本文将指导一位刚入行的小白如何实现iOS分类重写方法。
## 流程概览
以下是整个过程的流程概览:
```mermaid
pie
title iOS分类重写方法实现流程
"了解基本概念" : 30
"创建分类文件" : 20
"重写方法" : 30
原创
2023-11-27 12:01:30
181阅读
## iOS 分类 重写方法实现步骤
### 1. 理解iOS分类的概念和作用
iOS分类(Category)是Objective-C中一种常见的代码组织方式,它允许我们对现有的类进行扩展,添加新的方法或修改已有方法的实现。通过使用分类,我们可以在不修改原有类的情况下,给类添加新的功能。
### 2. 创建一个分类文件
为了重写一个已有类的方法,我们需要创建一个新的分类文件。在Xcode中,新
原创
2023-11-03 12:36:18
298阅读
# iOS 分类重写宏的实现指南
## 前言
在iOS开发中,分类(Category)是一个非常方便的功能,它允许我们给现有类添加方法,而不需要子类化或修改原有类的代码。在某些情况下,我们可能希望通过宏来重写某些方法,以达到更好的维护性或便捷性。本文将指导你如何实现iOS分类重写宏,包括详细的步骤和代码示例。
## 整体流程概述
下面是实现iOS分类重写宏的步骤:
| 步骤 | 描述
原创
2024-08-01 03:42:23
21阅读
# iOS 分类重写方法
在 iOS 开发中,分类(Category)是一种非常强大的特性,允许我们为已有的类添加方法而无需访问其源代码。然而,在某些情况下,我们可能需要重写(Override)已有的方法以实现特定功能。本文将介绍如何在 iOS 中使用分类重写方法,并通过代码示例加以说明。
## 什么是分类?
分类是一种Objective-C特性,使得我们能够为已有的类增加额外的方法。例如,
【【【前言:这是一款不太一样的“中杯”】】】 众所周知,近些年来越来越多手机厂商都喜欢在新品发布时,用“中杯”、“大杯”、“超大杯”来区分同系列的不同机型,即用于代替早前“标准版”、“Pro版”,以及“Pro+版”等配置。 表面上看,这是一种让一个系列的产品覆盖更广泛价格区间,同时提供更丰富配置的好方法。但其实在实际情况中,当许多品牌都喜欢只以最顶级型号的配置和功能作为宣传卖点,同时靠配置
转载
2023-08-28 17:22:34
57阅读
又是一年一度的苹果秋季新品发布会,和往常一样,苹果发布会总能引得铺天盖地的报道,早在一两个月以前,就有各种“泄露”的信息,挠的果粉们心痒痒,只等新品发售。 毫无疑问,此次发布会,人们最关注的依然是全新的三款iPhone 11系列智能手机。除了iPhone,苹果照例发布了数款新产品和服务,包括:游戏服务Apple Arcade、Apple TV+、iPad、Apple Watch。面对全球
转载
2023-10-19 22:43:47
50阅读
iOS Category实现原理 (补充)load 和 initializeloadload方法会在程序启动就会调用,当装载类信息的时候就会调用。
调用顺序看一下源代码。在 objc-loadmethod.m 文件中实现void call_load_methods(void)
{
static bool loading = NO;
bool more_categories;
怎么调用到原来类中被category覆盖掉的方法?对于这个问题,我们已经知道category其实并不是完全替换掉原来类的同名方法,只是category在方法列表的前面而已,所以我们只要顺着方法列表找到最后一个对应名字的方法,就可以调用原来类的方法:Class currentClass = [MyClass class];
MyClass *my = [[MyClass alloc] init];
转载
2023-05-29 22:49:04
177阅读
<一>类概念 Category 分类是OC特有的语言,依赖于类。 作用:在不改变父类的基础上,增加一些方法。 如下是Xcode6.2说明图示:下面简单验证一下:分类声明分类实现测试二,分类的使用(1)分类只能
转载
2024-02-16 11:54:36
106阅读
一、分类的使用场景可以减少单个文件的体积可以按照功能分组,放到不同的分类里,使类结构更清晰降低耦合性,同一个类可以有多个开发人员进行开发模拟多继承把静态库的私有方法公开二、特点运行时决议给系统类添加分类三、分类的底层结构在runtime文件objc-runtime-new.h中,找到分类category_t的结构体:struct category_t {
const char *name;
转载
2023-08-02 10:50:18
221阅读
1、什么是分类iOS分类使用的场景就是把功能模块化,把一组类似的功能扩展出一个分类,便于代码的维护以及功能的分块 2、分类的底层结构分类在iOS底层的数据结构如下:struct _category_t {
const char *name;
struct _class_t *cls;
const struct _method_list_t *instance_methods;
c
转载
2023-08-19 16:15:06
111阅读
分类category如果把全部方法写在一个模块里面,后期难以维护和管理,分类就是将一个类分为多个模块创建类的时候选择category
模块的文件名:本类名+分类名.h 本类名+分类名.m
当一个类很杂,可以使用分类,将相似的方法写在同一个模块之中/// 代表对已有的类添加一个分类,一个类可以有多个分类,分类用名字区分
@interface Student (itcast分类名)
@end
@i
转载
2023-07-14 20:58:02
185阅读
在OC中,扩展一个类的方式有两种:继承与分类。继承与分类最大的区别是,一般情况下,分类不能扩展属性,继承可以扩展属性。但有一种情况下,分类可以扩展属性,那就是在本类中写的分类。这里解释下,属性与成员变量的关系。属性: 声明一个属性,则系统会默认给生成读取函数(set,get),可以通过点运算符来默认调用这个存取方法,并且会产生一个以_开头的成员变量。属性就是与属性相对应的成员变量的值。在使用属性的
转载
2023-12-21 10:10:20
46阅读
在iOS中,分类(Category)是一种强大的特性,可以为已有的类添加方法。然而,当一个分类试图重写主类中的方法时,可能会导致一些潜在的问题,比如无法确保调用的是否是主类的方法。本文将详细介绍如何解决“iOS分类重写主类的方法”的问题,分为环境配置、编译过程、参数调优、定制开发、安全加固和进阶指南六个部分。
首先,在准备工作中,我们需要配置一个合适的开发环境,这里可以依赖Xcode和Cocoa
文章目录iOS的分类 和 扩展的区别分类(类别)Xcode创建一个分类分类的注意拓展Xcode创建拓展扩展的作用区别和联系 iOS的分类 和 扩展的区别分类(类别)分类也叫类别,对于一个我们可以它进行方法扩充,一般来说添加一个子类就可以达到目的,iOS提供了 类别为现有类添加新的方法,并且不需要创建子类Xcode创建一个分类1) 点开一个文件 点击New File ,选择iOS的OC File2
一、Massive AppDelegateAppDelegate 是应用程序的根对象,它连接应用程序和系统,确保应用程序与系统以及其他应用程序正确的交互,通常被认为是每个 iOS 项目的核心。随着开发的迭代升级,不断增加新的功能和业务,它的代码量也不断增长,最终导致了 Massive AppDelegate。在复杂 AppDelegate 里修改任何东西的成本都是很高的,因为它将会影响你的整个 A
转载
2023-11-30 18:56:31
64阅读
1.分类(category)的作用1.1作用:可以在不修改原来类的基础上,为一个类扩展方法。1.2最主要的用法:给系统自带的类扩展方法。2.分类中能写点啥?2.1分类中只能添加“方法”,不能增加成员变量。2.2分类中可以访问原来类中的成员变量,但是只能访问@protect和@public形式的变量。如果想要访问本类中的私有变量,分类和子类一样,只能通过方法来访问。2.3如果一定要在分类中添加成员变
转载
2024-05-16 23:03:45
120阅读
在OC的类中,我们如果在interface{}中定义了成员变量,如果我们想要在类外给他们赋值和获取他们的值,我们就需要给他们写set方法和get方法,否则会报错。如果成员变量名是age,对于set方法的格式要求是setAge,意思就是说set方法要以set开头后面的字符为变量的大写字母开头,get方法就是一般就是以变量名来命名。比如说#import <Foundation/Foundatio
转载
2023-12-16 13:52:10
23阅读
构造方法:用来初始化对象的方法,是个对象方法,-开头。构造方法其实就是将对象初始化的方法。以前对象的初始化都用[Person new];这里面的new方法太固定,耦合性太强,有时候没办法满足需求。其实new方法里面融合了alloc方法和init方法。实际上是[[Person alloc] init];alloc是类方法,目的是分配存储空间,init是对象方法,用来初始化对象的。重写构造方法的目的:
转载
2024-02-03 16:10:11
48阅读