iOS runtime

devtools/2024/9/20 3:51:57/ 标签: ios

—参考文章—

  • 暂时没有

一、如何在Xcode中使用runtime

Xcode默认是不建议开发者使用runtime的,所以在Xcode直接使用runtime的语法是会报错误的。
如果要在Xcode中使用runtime的语法,是需要配置一下才可以使用,配置方法如下图:

  • 首先在1的位置搜索Enable strict
  • 默认是选中Yes的,然后只要选中No即可,然后在项目中使用runtime语法就不会报错误了

配置runtime使用开关

二、几个常用的语法

  • 获取当前对象的所有方法
/* 获取对象的所有方法 */
-(NSArray *)getAllMethods
{NSMutableArray *tempMuArr = [[NSMutableArray alloc] init];unsigned int methCount = 0;Method *meths = class_copyMethodList([self class], &methCount);for(int i = 0; i < methCount; i++) {Method meth = meths[i];SEL sel = method_getName(meth);const char *name = sel_getName(sel);NSLog(@"%s", name);[tempMuArr addObject:[NSString stringWithFormat:@"%s", name]];}free(meths);return [tempMuArr copy];
}
  • 获取当前对象的所有属性
/* 获取对象的所有属性 */
- (NSArray *)getAllProperties
{u_int count;objc_property_t *properties  = class_copyPropertyList([self class], &count);NSMutableArray *propertiesArray = [NSMutableArray arrayWithCapacity:count];for (int i = 0; i < count ; i++){const char* propertyName =property_getName(properties[i]);[propertiesArray addObject: [NSString stringWithUTF8String: propertyName]];}free(properties);return propertiesArray;
}
  • 调用objc_msgSend方法
//调用对象方法
objc_msgSend(tempIamge, @selector(drawInRect:), CGRectMake(0, 0, 1242, 2208));//调用类方法
//方式1
UIImage *tempImage = ((UIImage *(*)(id, SEL, NSString *)) objc_msgSend)((id)[UIImage class], @selector(imageNamed:), @"test.jpg");
//方式2
UIImage *tempImage = ((UIImage *(*)(id, SEL, NSString *)) objc_msgSend)((id)objc_getClass("UIImage"), sel_registerName("imageNamed:"), @"test.jpg");

http://www.ppmy.cn/devtools/16692.html

相关文章

LabVIEW多通道数据采集系统

LabVIEW多通道数据采集系统 在当今的数据采集领域&#xff0c;随着技术的不断进步和应用需求的日益增长&#xff0c;对数据采集系统的速度、稳定性和灵活性要求也越来越高。基于千兆以太网和LabVIEW的多通道数据采集系统&#xff0c;以其高速的数据传输能力和强大的数据处理功…

microk8s拉取pause镜像卡住

前几天嫌服务器上镜像太多占空间&#xff0c;全部删掉了&#xff0c;今天看到 microk8s 更新了 1.30 版本&#xff0c;果断更新&#xff0c;结果集群跑不起来了。 先通过 microk8s.kubectl get pods --all-namespaces 命令看看 pod 状态。 如上图可以看到&#xff0c;所有的业…

【kotlin】利用by关键字更加方便地实现装饰器模式

关于kotlin中的by关键字的用法&#xff0c;kotlin官方文档属性委托这一节讲得很清楚。 简单来说就是这样的&#xff0c;假设存在一个接口Component如下&#xff1a; interface Component {fun method1(): IntArrayfun method2(a: Int)fun method3(a: Int, str: String) }那么对…

Kotlin语法入门-密封类和密封接口(11)

Kotlin语法入门-密封类和密封接口(11) 文章目录 Kotlin语法入门-密封类和密封接口(11)十一、密封类和密封接口1、密封类2、密封接口 十一、密封类和密封接口 1、密封类 在Kotlin中&#xff0c;密封类&#xff08;Sealed Class&#xff09;是一种特殊的类&#xff0c;用于表示受…

Linux fdformat命令教程:如何进行软盘的低级格式化(附案例详解和注意事项)

Linux fdformat命令介绍 fdformat是一个用于对软盘进行低级格式化的命令。这个命令通常用于对软盘进行底层的格式化操作&#xff0c;以便于在软盘上创建新的文件系统。 Linux fdformat命令适用的Linux版本 fdformat命令在大多数Linux发行版中都可以使用&#xff0c;包括但不…

NXP应用随记(七):S32K3XX复位与启动阅读记录

目录 1、复位过程 1.1、概述 1.2、复位产生模块 1.2.1、上电复位 1.2.2、破坏性复位 1.2.3、功能复位 1.3、芯片复位及引导概述 1.4、重置和启动流程图 1.5、复位块序列 2、上电复位 3、破坏性复位 4、功能复位 5、设备配置格式(DCF) 6、重置专题 6.1、重置引脚行…

怎么选合适的图纸加密软件?迅软DSE加密软件功能、安全与易用性并存

利用加密软件进行图纸加密&#xff0c;确保企业的图纸信息能够得到有效保护&#xff0c;防止非法访问和数据泄露。 一、挑选图纸加密软件的注意事项&#xff1f; 用户反馈&#xff1a;参考其他用户的反馈和评价&#xff0c;了解软件在实际使用中的表现和潜在问题。兼容性&…

《A Discriminative Feature Learning Approach for Deep Face Recognition》阅读笔记

论文标题 《A Discriminative Feature Learning Approach for Deep Face Recognition》 一种用于深度人脸识别的判别性特征学习方法 作者 Yandong Wen、Kaipeng Zhang、Zhifeng Li 和 Yu Qiao 来自深圳市计算机视觉与专利重点实验室、中国科学院深圳先进技术研究院和香港中…

牛客NC199 字符串解码【中等 递归,栈的思想 C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4e008fd863bb4681b54fb438bb859b92 相同题目&#xff1a; https://www.lintcode.com/problem/575 思路 解法和基础计算器1&#xff0c;2,3类似,递归参考答案C struct Info {string str;int stopindex;Info(str…

linux 系统文件目录颜色及特殊权限对应的颜色

什么决定文件目录的颜色和背景&#xff1f; 颜色 说明 栗子 权限白色表示普通文件 蓝色表示目录 绿色表示可执行文件 浅蓝色链接文件 黄色表示设备文件 红色 表示压缩文件 红色闪烁表示链接的文件有问题 灰色 表示其它文件 可以用字符表示文件的类型&am…

芯片制造的成本与定价

芯片制造的成本与定价之间存在密切关系,芯片制造商在设定产品价格时会充分考虑制造成本,并结合市场策略、竞争态势、客户接受度等多个因素来制定最终售价。以下是关于芯片制造成本与定价之间相互作用的一些关键点: 1. 成本构成 芯片制造成本主要包括以下几个方面: 设计成本…

信息系统项目管理师0069:数据运维(5信息系统工程—5.2数据工程—5.2.3数据运维)

点击查看专栏目录 文章目录 5.2.3数据运维1.数据存储2.数据备份3.数据容灾4.数据质量评价与控制记忆要点总结5.2.3数据运维 数据开发利用的前提是通过合适的方式将数据保存到存储介质上,并能保证有效的访问,还要通过数据备份和容灾手段,保证数据的高可用性。数据质量管理是在…

AI电销机器人系统源码部署之:freeswitch安装Linux

安装 FreeSWITCH&#xff08;一个开源的电话交换系统&#xff09;通常需要一些步骤&#xff0c;以下是在 Linux 系统上安装 FreeSWITCH 的基本指南&#xff1a; 准备工作&#xff1a; 确保你有一个运行 Linux 的服务器&#xff0c;并且有 root 或者具有 sudo 权限的用户。确保服…

一文详解视觉Transformer模型压缩和加速策略(量化/低秩近似/蒸馏/剪枝)

视觉Transformer&#xff08;ViT&#xff09;在计算机视觉领域标志性地实现了一次革命&#xff0c;超越了各种任务的最先进模型。然而&#xff0c;它们的实际应用受到高计算和内存需求的限制。本研究通过评估四种主要的模型压缩技术&#xff1a;量化、低秩近似、知识蒸馏和剪枝…

OSPF的协议特性

路由汇总的概念 l 路由汇总&#xff08; Route Aggregation &#xff09;&#xff0c;又称路由聚合&#xff08;Route Summarization&#xff09;&#xff0c;指的是把一组明细路由汇聚成一条汇总路由条目的操作 l 路由汇总能够减少路由条目数量、减小路由表规模&#xff0…

什么是OCR转换?

OCR转换是指将图片或扫描文档中的文字内容转换成电子文本的过程。OCR代表光学字符识别&#xff08;Optical Character Recognition&#xff09;&#xff0c;是一种通过算法和模型来识别图像或文档中的文字&#xff0c;并将其转换成可编辑、可搜索的文本格式。OCR转换通常包括以…

mysql服务器无法启动问题处理

一台hlr服务器用网关软件登录失败&#xff0c;查找原因&#xff0c;发现网关软件连接服务器的tcp的10002端口失败&#xff0c;超时无应答&#xff0c;导致连接失败。 用户反馈核心网hlr&#xff0c;smc无法登录&#xff0c;putty登录服务器&#xff0c;发现hlr10002端口没有打…

http忽略ssl认证

我们在发请求时&#xff0c;会遇到需要ssl证书验证的报错&#xff0c;针对该错误以及所使用的不同的创建连接的方式&#xff0c;进行ssl证书忽略 忽略SSL证书的流程 简介&#xff1a;需要告诉client使用一个不同的TrustManager。TrustManager是一个检查给定的证书是否有效的类…

【Matlab函数分析】对二维或三维散点数据插值函数scatteredInterpolant

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

使用git将本地项目上传到github

大致的流程是&#xff1a;创建本地仓库&#xff0c;把代码传到本地仓库&#xff0c;把本地仓库内容传到远程仓库。还不太完整&#xff0c;逐渐摸索使用吧 1、初始化仓库 git init在本地项目的路径中初始化一个仓库。 2、提交到本地 选择需要上传的文件 git add .提交到本地…