oc中写c语言的方法,OC语言description步骤和sel

article/2025/8/28 16:15:32

OC语言description方法和sel

OC语言description方法和sel

一、description方法

Description方法包括类方法和对象方法。(NSObject类所包含)

(一)基本知识

-description(对象方法)

使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出。

+description(类方法)

使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@。

使用@%打印对象如(“@%”,P)默认打印输出为,虽然字符串也是对象,但字符串在使用@%打印时情况特殊。

111307190.png

那么应该怎么实现打印对象的所有属性呢?在类的实现中重写description方法。

(二)实现打印对象的所有属性

111307191.png

(三)区别

+description方法决定了类对象的输出结果,即类本身

-description方法决定了实例对象的输出结果,即Person创建的对象。

(四)打印相关补充

111307192.png

二、SEL

SEL:全称Selector 表示方法的存储位置。

方法在内存中是怎么存储的?

111307193.png

Person *p=[[Person alloc] init];

[p test];

寻找方法的过程:

(1)首先把test这个方法名包装成sel类型的数据;

(2)根据SEL数据找到对应的方法地址;

(3)根据方法地址调用相应的方法。

(4)注意:在这个操作过程中有缓存,第一次找的时候是一个一个的找,非常耗性能,之后再用到的时候就直接使用。

关于_cmd:每个方法的内部都有一个-cmd,代表着当前方法。

注意:SEL其实是对方法的一种包装,将方法包装成一个SEL类型的数据,去寻找对应的方法地址,找到方法地址后就可以调用方法。这些都是运行时特性,发消息就是发送SEL,然后根据SEL找到地址,调用方法。


http://chatgpt.dhexx.cn/article/gLreHN6X.shtml

相关文章

OC语言的概述

(一)OC的简介 OC语言的全名是Object-C编程语言,在程序员的领航里,我们通常简称为OC语言,那么,提到OC语言,他到底是什么样的一门语言呢?OC语言是基于C语言基础上,在进行了一次更高级的…

OC语言1-前期准备

一、OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c代码。 可以使用OC开发mac osx平台和ios平台的应用程序。 拓展名: c语言(.c …

什么是编程语言C语言,什么是oc语言,oc语言是c语言吗?

作为一个ObjecTIve-C的coder,我总能听到一部分人在这门语言上抱怨有很多问题。他们总在想快速学习这门语言来写一个App出来,但他们也总是联想到ObjecTIve-C看上去实在太难了或者在想这些语法符号都是神马玩意?不错,他们问得非常好…

OC语言类的深入和分类

OC语言类的深入和分类 一、分类 (一)分类的基本知识 概念:Category 分类是OC特有的语言,依赖于类。 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法。 添加一个分类: 文件结构图&…

OC 基础入门

OC 基础入门 OC 源文件 OC 源文件为 .h 和 .m( m表示 message,表示 OC 中的消息机制 ) 在 .m 文件中可以写 OC 代码、C 代码、C 代码。反正 Java 的 .class 文件不能写 C 和 C 。 NS 前缀 从之前的 OC 的历史中知道 OC 来自 NextStep. 所以许多的 OC 的类都是带了 NS 前缀…

OC语言学习记录

目录 一、主要的OC的基本类型介绍 二、IOS属性 1、什么是属性 2、属性修饰符 A、读写性修饰符 B、原子性修饰符 C、assgin和weak D、strong和copy E、retain 三、iOS内存管理 1、什么是内存管理? 2、内存是怎么分配的,是分配在哪里的&#x…

OC语言--OC语言基础、类

一、OC语言基础 1>OC文件的扩展名为.m、.c; 2>OC语言完全兼容C语言,即OC语言中可以写C语言; 3>OC语言也可以写C语言,但是如果要写C语言,则OC文件扩展名为.mm; 4>OC语言是在C语言的基础上增加了最小层的面…

OC语言特性

一、分类 1.1做了那些事?(关键词:明私、分解、私公开化) 声明私有方法,分类头文件放到数组文件.m中,不对外暴露 分解体积庞大的类文件 功能复杂的按功能分类 framework私有方法公开化 1.2特点 &#x…

下载各版本cuda,下载以前版本的cuda

1.打开网址https://developer.nvidia.com/cuda-toolkit-archive 2.下载10.1版本就点击CUDA Toolkit 10.1 3.如图选择自己的版本。 4.打开这个网址就可下载。 5.cd到下载目录,执行sudo sh 文件名 指令 6.移动到continue按enter键确认 7.回复accept 8.不安装驱动 9.安…

Windows下显卡支持的cuda及配套GPU版本pytorch下载全流程(2022.03.27)

Windows下显卡支持的cuda及配套GPU版本pytorch下载全流程(2022.03.27) 一、更新电脑显卡驱动(以mx150为例) 1、打开英伟达驱动下载官网:https://www.nvidia.cn/geforce/drivers/ 2、直接下载自动更新程序&#xff0c…

NVIDIA CUDA和cuDNN显卡历代版本下载地址

NVIDIA显卡计算能力一览表 https://developer.nvidia.com/cuda-gpus Halcon图像库支持深度学习,GPU计算能力要求3.0以上 深度学习必备 先安装N卡的显卡驱动--->再安装cuda-->最后安装cuDNN 显卡驱动 1、NVIDIA官方 https://www.nvidia.cn/Download/index…

Windows 下载与安装CUDA和Pytorch【安装教程、深度学习】

参考链接:Windows 下安装 CUDA 和 Pytorch 跑深度学习 - 动手学深度学习v2_哔哩哔哩_bilibili 0.准备工作 请确保你是NVIDIA的显卡(不能是AMD、集成显卡) 1.下载CUDA 打开developer.nvidia.com/cuda-downloads,打开有点慢 选择…

CUDA下载,以及下载GPU版本的pytorch

一、下载anaconda 因为这步我之前就下好了,主要参考这个链接:史上最全最详细的Anaconda安装教程 二、下载CUDA 1.首先观察自己需要什么版本的CUDA,以及是否安装过CUDA 先cmd,输入命令 nvidia-smi结果如下,所以我们…

[cuda]cuda驱动版本对应+旧版本cuda下载网址

一、背景 本文用于记录在安装cuda时可能需要的网址,留作己用。 二、cuda、nvidia驱动版本对应关系 1. cuda需要的最低驱动版本 2. cuda与对应的驱动版本 三、旧版本cuda下载网址 所有版本的cuda下载地址如下: cuda Toolkit Archive.

下载和安装CUDA和Cudnn(图文详解)

Pytorch环境需要用到CUDA,所以我们要安装CUDA的驱动。这里我安装的是CUDA10.0,对应的Cudnn是7.4.1。 一、下载 CUDA10.0的官网地址,选择好自己所需版本,这里是我推荐的选择,然后点击Download。 cudnn官网地址&#x…

cuda 10.1 下载

最近发现百度到的关于CUDA10.1版本的安装的文章,给的链接已经是10.2版本的了。想找个10.1版本的有点艰难,不过其实官网有历史版本的下载入口的 进入这个地址https://developer.nvidia.com/cuda-toolkit-archive,可以下载旧版本的CUDA 不想去官…

cuda官网下载,本机显卡驱动与cuda、cudnn、pytorch、torchvision安装版本对应表,以及完全卸载CUDA方法

注:如果执行第一步没有找到nvidia-smi指令,重装本机NVIDIA驱动(Linux, Windows 标题中各项版本对应) 重装NVIDIA驱动,选择自己的显卡产品系列和产品编号, 如下图 GeForce RTX 30系列,产品是3080 Ti,系统windows 10 64…

CUDA的下载安装

大家好,下面将进行CUDA的下载安装,下载安装的详细步骤描述如下: (1)CUDA下载 https://download.csdn.net/download/qq_41104871/87462747 (2)CUDA安装 1、首先,需要解压缩下载好的CUDA压缩包,CUDA压缩包如下图所示: 2、解压后,将会获得如下图所示的.exe文件:…