[ios] performSelector无法传多个参数解决办法

 

[self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>]无法传多个参数

解决方案1:把参数打包成一个VO或者数组

解决方案2:导入#import <objc/message.h>包

使用objc_msgSend(self,@selector(testObj:int:),10,40);

 

函数的第 1 个参数指向消息的接收者(即该方法的对象),第 2 个参数是一个选择器(即 方法),第 3 个参数是一个可变参数,是该方法的 1 个或多个参数,如果该方法没有参数,用 一个 nil 代替。 

iOS 多线程 performSelector 与 NSInvocation的使用——iOS 编码复习(三)(多线程1) 上一篇我们有分析runtime的大概实现过程,我们知道了objc_msgsend这个东西。它说的就是c语言的消息分发底层的大概实现。那么我们在iOS开发的过程中,实际会使用到的最直接的基于runtime机制的消息方法不就是performselector方法嘛!今天,我们就来分析一下这个东西:(同样成果是基于自己实践与看别人的博客的基础,所以也唠叨一下,希望各位可以多看看别人的博客哦,或者自己写写) 阅读详情

相关推荐

光学系统设计:波段、光源、光纤与探测器匹配指南

在光学测量和光纤通信系统中,波段、光源、光纤和探测器的匹配关系是系统设计的核心基础。波段指电磁波谱中的特定波长范围,光源负责产生特定波长的光信号,光纤作为传输介质需要与波长匹配以降低损耗,探测器则负责将光信号转换为电信号。理解各组件的光谱特性对于系统性能至关重要,例如在850nm短波长多模光纤系统中,VCSEL激光器与PIN光电二极管的组合能提供最佳性价比。典型应用场景包括生物医学成像、光纤通信和气体传感,其中光谱重叠优化、模场直径匹配和偏振特性协调是关键技术要点。通过实测数据对比不同组合的传输性能,可以为

weixin_33812433的博客 337

performSelector的原理以及用法

一、performSelector调用和直接调用区别 下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结, [delegate imageDownloader:self didFinishWithImage:image]; [delegate performSelector:@selec

$firecat利白的代码足迹$ 1万+

车载软件架构 —— AUTOSAR Vector SIP包(三)

### 上一篇文章中介绍了AUTOSAR基础软件供应商Vector公司的开发工具链,本文将继续介绍Vector公司的AUTOSAR产品。 ### -> 1、Vector SIP包中的StartApplication ### -> 2、StartApplication如何开始使用

Soly_kun的博客 828

iOS之@selector的函数传递多个参数

1、一般情况,使用self performSelector:SEL withObject:id方法 [self performSelectorOnMainThread:@selector(testAA:) withObject:[NSArray arrayWithObjects:@"1",@"2", nil] waitUntilDone:NO]; -(void) testAA:(NSAr...

LVXIANGAN的专栏 1万+

Python全栈入门到实战【进阶篇 2】面向对象之封装:私有属性、私有方法与@property优雅访问

_属性名真正私有方法:双下划线开头(__方法名()),Python自动名字改写,外部无法访问;约定私有方法:单下划线开头(_方法名()),仅为编程约定,外部可访问但不推荐。实战中优先使用“真正私有方法”,隐藏核心辅助逻辑。封装的本质:隐藏对象的核心数据(私有属性)和内部逻辑(私有方法),仅对外提供规范、安全的访问接口,实现数据安全与可维护性;私有属性真正私有:双下划线开头(__属性名),Python名字改写,外部无法直接访问,仅类内部可用;约定私有:单下划线开头(_属性名。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 2912

Harness Engineering:让Coding Agent真正落地生产

本文将带你系统性地了解如何让Coding Agent真正落地生产,核心是依托(全球领先的持续交付、云成本管理、 feature flagging、安全治理一体化平台),结合企业级AIDD(AI-Driven Development)的工程化实践,构建一套可信赖、可观测、可扩展、可治理的Coding Agent落地体系。核心概念与理论基础:什么是Coding Agent?它和普通的AI代码补全工具(比如GitHub Copilot)有什么区别?什么是Harness Engineering?

移动开发前沿的博客 455

iOS performSelector多参数传递解决方案以及objc_msgSend的使用注意事项

iOS performSelector多参数传递解决方案以及objc_msgSend的使用注意事项 iOS中使用performSelector:withObject:withObject:方法最多传递两个参数 [self performSelectorOnMainThread: withObject: waitUntilDone:] 解决方案:1. 使用NSInvocation进行消息转发从而实现对performSelector的多参数传递 2. 使用runtime中的ob

glt_code的博客 8724

第02章:HSA-Runtime架构概览

摘要: 本章深入解析HSA Runtime的三层架构设计,包括公共API层(C语言接口)、核心实现层(C++业务逻辑)和驱动抽象层(硬件交互)。重点介绍了Runtime的核心组件(Agent、Queue、Signal、Memory)及其关系,以及初始化流程、配置选项和调试功能。通过学习,读者将掌握HSA Runtime的整体架构,为后续模块学习奠定基础。

图形/计算GPU的驱动与虚拟化技术分享园地 2916

Objective-C中一种消息处理方法performSelector: withObject:

Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。   首先介绍两个方法 SEL和@selector 根据AppleObjective-C Runtime Reference官方文档这个传递消息的函数就是 id objc_ms

lynjay的专栏 808

如何使用 SAP ABAP Development Tool 连接 SAP BTP 上的免费 ABAP 编程环境

在云端环境编写 ABAP 代码会遇到一些限制,比如你无法在云端 ABAP 编程环境进行发生在传统 SAPGUI 里的 Dynpro 和 Screen 编程。部分在 SAPGUI 里使用的 List 处理相关的关键字比如 WRITE,还有 CALL TRANSACTION 等代码,也无法在云端使用。 当然如果大家觉得上面提到的这些限制不会影响自己的 ABAP 学习,就可以继续本文的阅读,使用 ABAP Development Tool 登录云端的 ABAP 编程环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1514

单细胞转录组数据分析中的基因ID注释转换问题:如何解决才能注释所有的UMIcount数据?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1126

OC performSelector和传递参数

performSelector和直接调用方法的区别 performSelector: withObject:是在iOS中的一种方法调用方式。他可以向一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以这也是runtime的一种应用方式。 所以performSelector和直接调用方法的区别就在与runtime。直接调用编译是会自动校验。如果方法不存在,那么直接调用 在编译时候就能够发现,编译器会直接报错。 但是使用performSelector的话一定是在运行时候才能发现,如果此方...

迦南的专栏 2698

【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

DeveloperMrMeng的博客 694

iOS 【消息处理 performSelector】

消息处理之performSelector

CoderZYWang 1539

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IOS中关于延迟函数performSelector的使用

一、首先解释下performSelector方法中每个参数的意义: - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay; (1)aSelector:表示你要调用的方法 (2)anArgument:如果你要调用的方法中需要传递参数,那么anArgu

态度决定一切 细节决定成败 5603

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

iOS中performSelector+@selector多参数传递解决方法

关于performSelector传递参数一般不能超过2个,但是现实开发中我们有时需要用到传递大于2以上的参数,这个时候performSelector就不能满足要求了。所以这里总结了开发中解决的办法,有二种: 1.用NsInvocation代替performSelector可以实现传递多个参数 2.就是将参数进行封装成一个结构体,Class,z字典或其他的集合,然后定义一个传递单参的方法也可以

公子纠的博客 9733

iOS使用方法传递多个参数

1、一般情况,使用 self performSelector:SEL withObject:id方法[self performSelectorOnMainThread:@selector(testAA:) withObject:[NSArray arrayWithObjects:@"1",@"2", nil nil] waitUntilDone:NO]; -(void) testA...

Yancy的博客 3618

iOS 消息处理之performSelector

//// RootViewController.h// DSCategories//// Created by dasheng on 15/12/17.// Copyright © 2015年 dasheng. All rights reserved.//#import <UIKit/UIKit.h>@interface RootViewController : UI...

dgzr3370的博客 176

performSelector和传递参数

performSelector和直接调用方法的区别 performSelector: withObject:是在iOS中的一种方法调用方式。他可以向一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以这也是runtime的一种应用方式。 所以performSelector和直接调用方法的区别就在与runtime。直接调用编译是会自动校验。如果方法不存在,那么直接调用 在编译时候就能够发...

Lu_Ca的博客 6154

performSelector最多只能传两个参数

914

IOS开发:performSelector: withObject:afterDelay 的Object里传入多个参数

在编写代码的时候可能会遇到这种情况   - (void)roleReleaseSkillName:(NSString*)name forHurt:(NSString*)hurt { NSLog(@"%@ %@",name,hurt); }  有两个或者两个以上的参数当需要执行performSelector方法 withObject只能传入一个参数,并且也没有对应的wit

hzdg360的博客 625

iOS笔记-performSelector的探索

官方文档介绍 - (id)performSelector:(SEL)aSelector; Description Sends a specified message to the receiver and returns the result of the message. The performSelector: method is equivalent to sending an aSel...

zww学习笔记 420

iOS performSelector的原理以及用法

一、performSelector调用和直接调用区别 下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结, [delegate imageDownloader:self didFinishWithImage:image]; [delegate performSelector:@selector...

ihoudf 973

关于performSelector看我就够了

黑客技术点击右侧关注,了解黑客的世界!Java开发进阶点击右侧关注,掌握进阶之路!Linux编程点击右侧关注,免费入门到精通!作者丨卖报的小画家Surehttps://w...

iOS_开发 365

80_iOS干货43_调用OC方法传递多个参数的11种方法

一,方法中写多个参数调用 - (void)test1 { [self testFunctionWithParams1:6 :@"234131#"]; } - (void)testFunctionWithParams1:(int )number :(NSString *)string { NSLog(@"方法多个参数:%i%@",number, string); } 二,per...

a_horse的博客 3496
上一篇: [ios]宏定义
下一篇: [ios]MFMessageComposeViewController 等<MessageUI/MessageUI.h> 系统页面 禁旋转
iPoolo
博客等级 码龄17年 2粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值