IOS - 运行时 (常用函数)

iOS常用数学函数(公式) iOS数学公式都定义在文件中,一般情况下不需要单独引入即可调用相关的数学函数。一般情况下,同一个数学函数有多个,根据需要选择,有些是重载的,有些是xxx和xxx2这样的形式。 阅读详情

可以通过NSObject的一些方法获取运行时信息或动态执行一些消息:

/*Returns a Boolean value that indicates whether the receiving class is a subclass of, or identical to, a given class.*/
 + (BOOL)isSubclassOfClass:(Class)aClass;
/*Returns a Boolean value that indicates whether instances of the receiver are capable of responding to a given selector.*/

+ (BOOL)instancesRespondToSelector:(SEL)aSelector;
 例如:if ([[Retangle class] respondsToSelector: @selector(print)]==YES) {……} 

/*Returns a Boolean value that indicates whether the receiver is an instance of a given class.*/
- (BOOL)isMemberOfClass:(Class)aClass;
 例如:[obj isMemberOfClass:[Retangle class]];


除此之外还有:
conformsToProtocol 检查对象是否实现了指定协议类的方法
methodForSelector  返回指定方法实现的地址
performSelector:withObject 执行SEL 所指代的方法
 


- (id)performSelector:(SEL)aSelector;
- (id)performSelector:(SEL)aSelector withObject:(id)object;
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
这三个方法,均为同步执行,与线程无关,主主线程和子一程中均可调用成功。等同于直接调用该方法。在需要动态的去调用方法的时候去使用。
例如:[self performSelector:@selector(test2)] 与[self test2];执行效果上完全相同。



- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay inModes:(NSArray *)modes;
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;
这两个方法为异步执行,即使delay传参为0,仍为异步执行。只能在主线程中执行,在子线程中不会调到aSelector方法。可用于当点击UI中一个按钮会触发一个消耗系统性能的事件,在事件执行期间按钮会一直处于高亮状态,此时可以调用该方法去异步的处理该事件,就能避免上面的问题。
在方法未到执行时间之前,取消方法为:

+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget selector:(SEL)aSelector object:(id)anArgument;
+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget;
注意:调用该方法之前或在该方法所在的viewController生命周期结束的时候去调用取消函数,以确保不会引起内存泄露。


- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array;
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
这两个方法,在主线程和子线程中均可执行,均会调用主线程的aSelector方法
如果wait传YES,则为异步执行,如果wait传NO,则为同步执行。

注意:apple不允许程序员在主线程以外的线程中对ui进行操作,此时我们必须调用performSelectorOnMainThread函数在主线程中完成UI的更新


- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array;
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait;
调用指定线程中的某个方法。分析效果同3。


- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg  起子线程在后台运行

Frida-iOS-Dump:iOS应用运行时诊断与IPA动态提取指南 Mach-O文件是iOS应用的二进制核心载体,其结构包含LC_CODE_SIGNATURE、__TEXT段、DWARF符号表等关键组件;动态插桩(Dynamic Instrumentation)技术通过用户态注入实现对运行中App内存布局、资源路径及实时符号的非侵入式捕获。相比静态分析工具,它能精准反映真实设备上的加载行为与Framework版本状态,支撑合规场景下的APM监控、App Store审核预检与启动异常根因定位。本文聚焦Frida-iOS-Dump这一轻量级运行时诊断框架,详解其在iOS 17+ 阅读详情

相关推荐

IoTDB时序数据库在Windows下的保姆级安装教程(含环境变量配置避坑指南)

本文提供Apache IoTDB时序数据库在Windows系统下的详细安装与配置指南。教程涵盖从Java环境检查、软件下载解压,到环境变量配置的深度避坑,并详解了服务的启动、停止、连接测试及基础数据操作,帮助物联网开发者在Windows平台快速搭建稳定的时序数据库环境。

weixin_29275257的博客 262

iOS exit(),abort(),assert()函数区别

iOS exit(),abort(),assert()函数区别 exit() 退出程序 abort() 停止程序, assert()检查里面的参数如果为nil抛出异常; 转载于:https://www.cnblogs.com/cocoajin/p/3516911.html...

weixin_33701564的博客 388

数字麦克风PDM信号采集与STM32 I2S接口应用(二)

在使用STM32的数字麦克风I2S接口时,计算采样率让人头疼,芯片手册上没有明确的说法,而手册上的计算方法经过测试却和实验不符。借助搜索引擎,大部分资料都是来自于开发板卖家或开发板论坛,主要是咪头采集然后配置WM89系列解码芯片,然后配合FatFS、MP3解码等模式,主要是讲解I2S录音、存储、放音等。外文资料得到的也寥寥无几,也没有找到讲解STM32数字麦克风配置、计算的文档。加上网上资料转载、抄袭、浅尝辄止的笔记教程,这些更是让检索大海捞针,过程艰辛一言难尽,有些网文三言两语抑或作者都没有搞清楚随手一写

XIAOYOUDUODUO的博客 6055

【iOS】源码阅读(三)——内存对齐原理

之前学习alloc相关源码,涉及到内存对齐的相关内容,今天笔者详细学习了一下相关内容并写了此篇博客。

2301_80467753的博客 1460

AFSim 2.9中文手册实战指南:从安装到高级功能详解(附B站视频链接)

本文详细介绍了AFSim 2.9的安装配置、基础功能操作和高级功能应用,帮助用户快速掌握这款强大的仿真平台。从系统要求检查到多体动力学仿真,再到性能优化技巧,全面解析AFSim 2.9的使用方法,适合初学者和进阶用户参考。

weixin_30892037的博客 566

AutoCAD 2025在Win10/Win11上的官方安装、配置与问题排查全指南

对于需要在 Windows 11 或 Windows 10 系统上部署 AutoCAD 2025 的设计师、工程师和 IT 支持人员来说,一个稳定、合规的安装流程是高效工作的基石。网络上充斥着各种所谓的“免费下载”和“一键安装”教程,但这些资源往往来源不明,可能捆绑恶意软件、导致软件崩溃,甚至引发严重的许可合规风险。本文旨在提供一个清晰、安全、基于官方最佳实践的 AutoCAD 2025 安装与配置指南,重点解决在 Windows 11 和 Windows 10 系统上部署时可能遇到的兼容性问题、安装失败以

weixin_34396103的博客 450

iOS/iPhone 程序文件目录结构以及启动流程

要想清晰的理解IOS应用程序的启动过程,毫无疑问需要深入了解一下ios应用程序的文件系统。一个ios应用程序都有一个属于自己沙盒(sandbox),应用沙盒就是文件系统目录,并且与文件系统的其他部分隔离。应用必须待在自己的沙盒里,应用既不能访问其他应用的沙盒,其他应用也不能访问该沙盒。          应用沙盒包含多个目录:          1.应用程序包(applicat

dealwithme的专栏 871

Docker安装Nacos(详细教程)

Docker安装Nacos的步骤相对直接,但需要注意一些细节以确保安装成功。

weixin_73060959的博客 1406

iOS 运行时

一、什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是开发中经常用到的底层技术) 二、运行时的作用? 能获得某个类的所有成员变量能获得某个类的所有属性能获得某个类的所有方法交换方法实现能动态添加一个成员变量能动态添加一个属性能动态添加一个方法 三、案例:运行时获取成员变量名称 1、分析 #import #import "CKPerson.h"

CuiAnkly的博客 1272

深度测评:Accio Work——目前普通用户最友好的多 Agent 协同工具

摘要:Accio Work是阿里国际站推出的多Agent协同工具,通过借鉴古代"三省六部制"构建高效协作框架。该工具支持主流大模型,可配置专业Agent角色,实现40分钟内完成复杂产品PRD等高效协作。其亮点在于直观的UI设计和流程驱动机制,能强制各Agent从专业视角深度思考。虽然超长对话稳定性有待优化,但作为目前最用户友好的多Agent工具,显著降低了构建复杂AI团队的门槛,成为提升个人和小微企业生产力的利器。

Maynor的博客 1734

使用MATLAB求解二维顶盖驱动流问题的详细代码和说明

本文介绍了使用MATLAB求解二维顶盖驱动流问题的涡量-流函数方法。代码采用129×129网格,雷诺数Re=1000,通过迭代求解Navier-Stokes方程,包含流函数方程和涡量输运方程的离散求解。程序实现了边界条件处理、收敛性检查,并提供丰富后处理功能:流线图、涡量分布图、中心线速度曲线、矢量图和三维涡量可视化。计算结果可与Ghia等(1982)的经典数据进行验证。该代码完整展示了CFD问题的数值求解流程,包括参数设置、主循环计算和多种结果呈现方式,适用于流体力学教学和科研验证。

AI的内部世界的博客 225

iOS运行时(Runtime)总结

声明本博客中文章不会在此处再更新,只会在微信公众号中更新,请关注微信公众号,以获取最新的学习资源和更多学习资源。本博文末尾有微信公众号二维码,扫一扫添加关注。 原文出自:微信公众号iOSDevShares的文章 引言相信很多同学都听过运行时,但是我相信还是有很多同学不了解什么是运行时,到底在项目开发中怎么用?什么时候适合使用?想想我们的项目中,到底在哪里使用过运行时呢?还能想起来吗?另外,在面试

标哥 2721

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之BswM模块配置详解(上)

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之BswM模块配置详解(上)

weixin_42412049的博客 740

IOS判断版本之编译期和运行时

最近的一些小感悟,每次开发的时候都会不记得什么时候用编译期ios版本区分,什么时候用运行时ios版本区分。决定写下来下次就记得了! 编译期IOS版本判断: #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 60000 //xcode baseSDK为6.0或者以上 #else //xcode baseSDK为6.0以下的#endif 编译期的版本判断是指在编译

3551

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

iOS 常用数学函数

iOS开发中,常用的c函数,在math.h中 绝对值函数 1. 取绝对值函数:y = |x| fabs() extern float fabsf(float); extern double fabs(double); extern long double fabsl(long double); 取整函数 1. 对x进行向上取整 -- ceil() extern float cei...

天佑木枫 924

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

运行时(iOS)

运行时(iOS) 一、什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是一种非常牛逼、开发中经常用到的底层技术) 二、运行时的作用? 能获得某个类的所有成员变量 能获得某个类的所有属性 能获得某个类的所有方法 交换方法实现 能动态添加一个成员变量 能动态添加一个属性 能动态添加一个方法 三、案例:运行时获取成员变...

aaa1231722的博客 131

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

iOS运行时Runtime浅析

运行时是iOS中一个很重要的概念,iOS运行过程中都会被转化为runtime的C代码执行。例如[target doSomething];会被转化成objc)msgSend(target,@selector(doSomething))来执行。这篇博客会较为全面的来讲解下Runtime。(1)当我们需要使用Runtime的接口时,需要导入头文件:#import ,Runtime可以进行如下操作,在运行

乞力马扎罗的雪CYF的博客 1万+

iOS应用安全Part3:理解Objective-C运行时

几乎所有的原生iOS应用都是用Objective-C语言写的,所有这些APP都使用Cocoa,这是一个处在Objc-C顶端的库,它提供了高级API,使Mac和iOS的开发工作更加简单。此外,Cocoa还为APP提供了一个运行时环境。在本文中,我们将重点理解Objective-C运行时,以及Objective-C如何在内部运行等这些复杂细节。掌握这些将有助于我们更加深入地理解iOS应用的安全性。

清枫逸寒 1190

iOS 运行时应用

一、什么是运行时(Runtime)?运行时是苹果提供的纯C语言的开发库(运行时是开发中经常用到的底层技术) 二、运行时的作用?能获得某个类的所有成员变量 能获得某个类的所有属性 能获得某个类的所有方法 交换方法实现 能动态添加一个成员变量 能动态添加一个属性 能动态添加一个方法 三、案例:运行时获取成员变量名称1、分析 #import <Foundation/Foundation.h

CuiAnkly的博客 3682

IOS运行时

一、runtime简介 RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制。 对于C语言,函数的调用在编译的时候会决定调用哪个函数。 对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。 事实证明:在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错

hhhbbbkkk的博客 527

iOS 运行时详解

注:本篇文章转自:http://www.jianshu.com/p/adf0d566c887 一、运行时简介 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以正常的运行。Runtime基本上是用C和汇编写的,这个库使得C语言有了面向对象的能力。在R...

dengguigu1986的博客 253

开源项目推荐:Grapefruit - iOS 运行时应用仪器

Grapefruit 是一个针对 iOS 平台的运行时应用仪器项目,旨在帮助开发者进行应用分析和安全测试。该项目主要使用 TypeScript、Vue 和 JavaScript 编程语言。 ## 1. 项目基础介绍 Grapefruit(前身为 Passionfruit)是一个开源项目,它允许开发者在 iOS 设备上动态地分析和修改运行中的应用。通过使用 Frida 这个知名的工具,Grape...

gitblog_00563的博客 1256

IOS开发——Runtime运行时

Runtime运行时,是objective-c底层C库,下面是详细的常用runtime函数使用解释,属于IOS开发高级进阶内容,有兴趣的朋友可以了解学习。微笑

packy周的专栏 1196

iOS应用安全Part4:使用Cycript进行运行时分析

在本文中,我们将学习如何使用一个名为Cycript的重要工具来分析和修改一个iOS应用程序的运行时,本文中我们以“雅虎天气”iOS应用作为示例App。

清枫逸寒 1160

iOS开发常用数学函数

1、 三角函数  double sin (double); 正弦  double cos (double);余弦  double tan (double);正切  2 、反三角函数   double asin (double); 结果介于[-PI/2, PI/2]  double acos (double); 结果介于[0, PI]  double atan (double);

Immensity的博客 470
上一篇: IOS -运行时 (消息传递再探究)
下一篇: 搭建高可用mongodb集群(一)—配置mongodb
张哲BJUT
博客等级 码龄15年 151粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值