form factor_perform和performance的区别和用法

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

performSelector: withObject:是在iOS中的一种方法调用方式。他可以向一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以这也是runtime的一种应用方式。

1.performSelector与直接调用的区别
performSelector和直接调用方法的区别就在与runtime。直接调用编译是会自动校验。如果方法不存在,那么直接调用 在编译时候就能够发现,编译器会直接报错。
但是使用performSelector的话一定是在运行时候才能发现,如果此方法不存在就会崩溃。所以如果使用performSelector的话他就会有个最佳伴侣- (BOOL)respondsToSelector:(SEL)aSelector;来在运行时判断对象是否响应此方法。

二API

  1.与线程无关,均为同步执行,主线成子线程都可以调用
    [self performSelector:@selector(test)];
    [self performSelector:@selector(test) withObject:@"张三"];
    [self performSelector:@selector(test) withObject:@"张三" withObject:@"李四"];

    2.主线程调用
    [self performSelectorOnMainThread:@selector(test) withObject:nil waitUntilDone:NO];

3.延迟执行
/*延迟执行 延迟2秒执行test方法
   该方法内部创建了timer,然后会添加到到runloop中,所以在子线程中执行该方法时注意先执行performselector方法,然后在执行runloop run方法
     如果在子线程调用那么test方法也在子线程中执行,在主线程执行,test也是在主线程调用
    */
    [self performSelector:@selector(test) withObject:nil afterDelay:2.0f];
4.异步线程执行,不使用GCD/NSThread/NSOperation
//开启新的线程在后台执行
    [self performSelectorInBackground:@selector(test) withObject:nil];
    //指定线程执行
    [self performSelector:@selector(test) onThread:[NSThread currentThread] withObject:nil waitUntilDone:NO];

Jetbrains全家桶1年46,售后保障稳定

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207150.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手机怎么模拟125k卡_手把手教你用手机NFC秒变门禁卡,这个方法多种手机都可以适用…

    手机怎么模拟125k卡_手把手教你用手机NFC秒变门禁卡,这个方法多种手机都可以适用…现在只要手机支持NFC功能,手机秒变公交卡、移动支付、数据传输、门禁卡等功能,之前在评论看多好多人说不知道怎么复制门禁卡,今天就来和大家讲解下如何复制门禁卡。我们以华为手机,前提是手机支持NFC功能的。第一步:门禁卡功能在钱包里面,所以首先找到华为钱包并打开,登录你的华为账号,在主页找到【门钥匙】。第二步:点击进入【门钥匙】后,点击【添加】,开始【模拟】门卡第三步:根据提示,将门卡放到手机背面NF…

    2022年5月24日
    420
  • flume整合kafka

    flume整合kafka整合流程Flume发送数据到Kafka上主要是通过KafkaSink来实现的,主要步骤如下:1.启动Zookeeper和Kafka这里启动一个单节点的Kafka作为测试:#启动ZookeeperzkServer.shstart#启动kafkabin/kafka-server-start.shconfig/server.properties2.创建主题创建一个主题flume-kafka,之后Flume收集到的数据都会发到这个主题上:#…

    2022年6月23日
    31
  • java开发常用四大框架_大牛经验!常用的5款Java框架汇总[通俗易懂]

    java开发常用四大框架_大牛经验!常用的5款Java框架汇总[通俗易懂]Java框架在Java开发中的作用是毋庸置疑的。那么Java常用框架有哪些?大概包括:Hibernate、Spring、Struts、jQuery、Redis五种。这些框架有什么用呢?Java常用框架提供了一些现成的机制,在团队开发中简化开发难度。下面就来具体介绍一下Java常用的五大框架。1、HibernateHIbernate是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或从数据库…

    2022年7月7日
    27
  • matlab读取txt文件指定行_matlab中if判断中返回

    matlab读取txt文件指定行_matlab中if判断中返回MATLAB提供了一系列低层输入输出函数,专门用于文件操作。本文提供了几种Matlab读写文件的方法和预写的脚本。

    2025年9月23日
    6
  • 小米手机计算机无法归零,小米体脂秤不归零怎么调

    1、放平体重秤秤角。电子体重秤是比较敏感的,所以先确认四个秤脚是否摆放平稳、否有悬空、否有杂物,另外选择坚实的地面;2、移动后数据稳定再称重。第一次称完下来等数据稳定归零后再进行第二次测量;3、关闭忽略30秒之内的称重数据功能。小米体重秤有个选项,会自动忽略30秒之内的称重数据,也就是说前一个人刚称重完,30秒内另一个人站上去,得不到准确的数据。可以选择关闭该功能或者等30秒后再称重;4、重新绑定…

    2022年4月9日
    482
  • [HDU 2096] 小明A+B

    [HDU 2096] 小明A+B[HDU2096]小明A+B 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=20961#include<iostream>2#include<cstdio>3#include<cmath>4#include<algori…

    2022年6月16日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号