方法概念语法格式:<Access Specifier> <Return Type> <Method Name>(Parameter List){ Method Body}访问修饰符 返回类型 方法名称(参数列表){       方法主体}Access Specifier:访问修饰符这个决定了变量或方法
之前一篇文章《iOS关联对象》详细介绍了如何通过关联对象添加属性,本篇文章将介绍如何通过runtime的class_addProperty或class_addIvar动态添加属性,并且带领大家看看这两个方法底层是如何实现的。 class_addProperty添加属性对于已经存在的类我们用class_addProperty方法来添加属性,而对于动态创建的类我们通过class_addIvar添加属性
转载 2023-08-11 09:55:03
130阅读
# iOS类别添加属性的实现方法 作为一名经验丰富的开发者,我将教会你如何在iOS中实现类别添加属性的功能。在开始之前,我们先了解一下整个过程的流程,并且给出每一步需要做的事情和相应的代码。 ## 流程图 ```mermaid erDiagram classDiagram 小白 -->|1.提出问题| 经验丰富的开发者 小白 -->|2.请求帮助| 经验丰富的开发者
原创 2023-10-12 08:57:24
119阅读
# iOS类别设置属性iOS开发中,类别(Category)是一种非常有用的机制,它允许我们在不修改原始类的情况下为现有类添加新方法。除了添加方法之外,我们还可以使用类别为类添加属性。本文将介绍如何使用类别设置属性,并提供代码示例。 ## 什么是类别 类别是Objective-C中的一个特性,它允许我们在不修改原始类的情况下为现有类添加新方法。它可以让我们在不继承类的情况下扩展类的功能。
原创 2023-10-12 08:57:40
133阅读
一.类和对象之间的关系.  1.先有类才能有对象,类顾名思义就是一类具有相同属性事物的统称,是一个概念,而对象是具体的,是类的一个具体体现。 动物就是一个类,没有具体是事物,狗也是一个类,也没具体到一个事物,但是,我养的旺财就是对像了,这就具体到了一个 二、类简介 创建时有一个.h 和一个.m文件而类的声明是在.h文件中完成的. #import //注意的地方
最近跟人交流时,提到一个问题,说iOS分类中不能添加属性。这里探讨一下不能添加的原因和添加的方法。 首先,创建一个person类,代码如下:XGPerson.h#import <Foundation/Foundation.h> @interface XGPerson : NSObject /// 年龄 @property (nonatomic, copy) NSString *age
转载 2023-08-10 19:13:47
243阅读
# iOS开发:类别添加属性的深度解析 在iOS开发中,Objective-C的类别(Category)是一种强大的功能,允许开发者为现有的类添加新方法而无需修改原始类的代码。除了添加方法,我们还可以通过类别为类添加属性,这在某些情况下非常有用。本文将详细探讨如何在iOS开发中使用类别添加属性,并附上相应的代码示例,方便大家参考。 ## 为什么需要使用类别 首先,为什么会有添加属性的需求呢?
原创 7月前
36阅读
通过@property声明的属性,系统会自动生成setter和getter方法,但是在类别中声明的属性系统不会自动生成这两个方法,需要手动实现这两个方法。@property (nonatomic, assign) BOOL shouldPush;利用运行时runtime处理两个方法#import <objc/runtime.h>- (BOOL)shouldPush{ NSNumber *_shouldPush = objc_getAssociatedObject(self,
原创 2021-08-04 10:27:25
771阅读
# iOS 分类(Category)中添加属性的实现 在iOS开发中,分类(Category)是一种非常实用的技术,它允许我们为现有的类添加新方法,而不需要子类化该类。这在某种程度上扩展了类的功能,使得代码的复用成为可能。然而,值得注意的是,分类不支持添加实例属性,这使得一些场景下的需求变得复杂。本文将介绍如何在分类中添加属性,并提供相关代码示例。 ## 分类的基本用法 在iOS中,分类的声
原创 9月前
93阅读
一、什么是分类?概念:分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体指针。根据下面源码组成可以看到它没有属性列表,原则上是不能添加成员变量(其实可以借助运行时功能,进行关联),只能增加方法。 typedef struct objc_category *Category; struct objc_category { char *category_name OBJC2_U
概述属性就是对于一个对象的抽象刻画[1] . 一个具体事物,总是有许许多多的性质与关系,我们把一个事物的性质与关系,都叫做事物的属性。 事物与属性是不可分的,事物都是有属性的事物,属性也都是事物的属性。 一个事物与另一个事物的相同或相异,也就是一个事物的属性与另一事物的属性的相同或相异。 由于事物属性的相同或相异,客观世界中就形成了许多不同的事物类。具有相同属性的事物就形成一类,具有不同属性的事物
OC 对类的宽展有三中方式,分类,延展,继承,延展和继承不必多说。今天就说下如何给分类添加属性。我们知道OC比较爽的就是可以添加分类,在分类中添加自己喜欢的方法。可能有人会问了,不能添加属性啊 ,其实不然。比如我要在一个按钮的分类中添加一个数组属性就可以这样用@interface UIButton (Transcation) @property (nonatomic, strong) NSArra
转载 2023-05-31 11:52:02
263阅读
Objective-C语言 分类(什么是分类?分类的实现机制、原理是怎样的?我们应该怎样为一个分类提供实例变量呢?--涉及到第2点关联对象的考察)关联对象(Runtime分析和查看 分类和关联对象的实现机制、原理)扩展、代理怎么使用(分类和扩展的区别在哪里?)NSNotification(通知的实现机制和原理)KVO、KVC( KVO、KVC的实现机制、原理、包括涉及到了哪些设
很多人可能会问  iOS的分类和扩展的区别,网上很多的讲解,但是一般都是分类讲的多,而这也是我们平常比较常用的知识;但是,对于扩展,总觉得理解的朦朦胧胧,不够透彻。这里就讲一下我自己的理解,但是这个理解也是集合了前辈的经验来的,只不过我用大白文再延伸一点。 对于类扩展,先看下面的概念: 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性
数据存储的核心都是写文件。 属性列表:只有NSString、NSArray、NSDictionary、NSData可writeToFile;存储依旧是plist文件。plist文件可以存储的7中数据类型:array、dictionary、string、bool、data、date、number。 对象序列化(对象归档):对象序列化通过序列化的形式,键值关系存储到本地,转化成二进制流。通过runti
转载 2024-06-27 20:00:46
26阅读
1、IOS的概述    IOS是苹果公司开发的一种专门的操作系统(os),用在移动终端上的。目前终端设备有:Iphone,Ipad,Ipod tooch,Ipad mini,Apple TV。(这时候可以拓展一下操作系统的概念。)操作系统:简称OS,管理和控制计算机硬件与软件资源的计算机程序,任何软件的运行使用必须依附于操作系统,离开它无法工作。操作系统的常用的种类有
分类 (Category)什么是分类:分类就是类的补充和扩展部分,补充和扩展的每个部分就是分类。 分类本质上就是类的一部分,分类给特定类添加能力。分类的定义方式:主类类名+分类类名分类文件也分为.h和.m文件 .h文件中存放分类的声明部分 .m文件中存放分类的实现部分分类的作用:分类中可以对本类添加额外的方法,比如说:有一个Person的本类,现在分类可以对Person本类添加其余的方法,可
转载 2023-07-26 16:39:43
0阅读
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------- oc的类和对象 一、类和对象的定义  1、类(class):是具有相似内部状态和运动规律的实体的集合(或统称、抽象)。    &nbs
最近有小伙伴问到在iOS开发中的几种设计模式,这里摘录一下别人的总结(因为已经感觉总结得差不多了,适用的可以阅读一下)首先是开发中的23中设计模式分为三大类:1.创建型 2.结构型 3.行为型 (iOS常用大概6种)创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singlet
关于Category 的用法以及底层原理的问题,iOS Category的本质(一)这篇文章已经讲的很清楚了,今天主要讲讲Extension的用法以及和Category的区别。类扩展就像匿名的分类一样,除了一样不同的是,类扩展声明必须在@implementation在实现。新建一个Cat类,代码如下:#import "Cat.h" @interface Cat () /*** 名字 ****/
转载 2023-10-28 07:14:37
35阅读
  • 1
  • 2
  • 3
  • 4
  • 5