performSelector:相关的知识

来看一个例子:

#import <Foundation/Foundation.h>

@interface MyTst : NSObject

- (void) print;

@end

@implementation MyTst

- (void) print

{

NSLog(@"xxxxxxxxxx");

}

@end

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

#import "MyTst.h"

int main(int argc, char * argv[]) {

//    @autoreleasepool {

//        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

//    }

MyTst *myClass = [[MyTst alloc] init];

// 1    [myClass performSelector:@selector(print) withObject:nil afterDelay:0];

//2     [myClass performSelector:@selector(print) withObject:nil];

return 0;

}

上面的代码1、和2 会执行吗?

答案是:2会执行,因为performSelector:@selector(print) withObject:nil相当于向runloop发送了一个启动通知,收到这个通知后print方法会被立刻执行

而1不会被执行。-performSelector:withObject:afterDelay: 方法本质上是一个timer回调,而timer需要依靠RunLoop才能运转,如果这是个非UI的程序且不手动起个RunLoop的话,程序应该直接就结束了吧,就算afterDelay:0 也没用。如果要想执行得 [[NSRunLoop currentRunLoop] run];才行。

时间: 2024-11-07 03:33:50

performSelector:相关的知识的相关文章

磁盘相关的知识

每一块硬盘都由一个或多个盘片组成,每一个盘片都有两个可以读写的盘面组成. 硬盘的逻辑组成: 磁道(Track):盘片的同心圆就称为磁道. 柱面(Cylinder):所有盘片的同一个磁道就组成了柱面.柱面是分区的最小单位. 扇区(Sector):存储数据的最小单位.每一个扇区为512字节.扇区包含用户数据.以及该扇区的一些标识信息,如所位于的磁头.磁道等编号信息. MBR:Master Boot Record MBR位于0盘片,0磁道,0扇区的512字节.MBR属于磁盘,不属于任何分区. MBR有

网络连接相关基础知识笔记

一.常说的TCP/IP的含义 TCP/IP协议簇并不仅仅指TCP协议和IP协议,实际它包括了一系列协议组成的集合,如:TCP,IP,UDP,FTP,SMTP,DNS,ARP,PPP等 TCP与UDP协议都属于传输层协议,但有很大不同,TCP是面向连接的协议,提供的是可靠的数据流服务,TCP采用"带重传的肯定确认"机制来实现传输的可靠性,实现了一种"虚电路",因为从物理上来说,并不是真正在两台主机间建立了连接,这种连接只是存在于逻辑上的.最大的开销出现在通信前建立连接

深入理解mysql之BDB系列(1)---BDB相关基础知识

    深入理解mysql之BDB系列(1) ---BDB相关基础知识 作者:杨万富 一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的,包括五个子系统(见图1.1中相关数).1)数据存取子系统,2)事务子系统,3)锁子系统,4)内存池管理子系统,5)日志子系统. 在一个应用程序中,并不一定须要全然具备这5大子系统. 假设程序仅仅使用了数据存取子系统,它的体系结构如图1.2.在图1.2中,我们仅仅使了两个子系统:数据存取以及内存池子系统.(备注:另外三个子系统在B

.NET同步与异步之相关背景知识(六)

在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成Task(五) .NET 实现并行的几种方式(四) .NET 实现并行的几种方式(三) .NET 实现并行的几种方式(二) .NET 实现并行的几种方式(一) 话再说回来,这五篇随笔都属于<同步与异步>系列.同步与异步.这是一个很大.很笼统的话题,以笔者所学很难将其将其介绍清楚,不过.笔者还是会尽力

图像增强相关基础知识

图像增强处理-1 图像增强是图像处理中一个重要的内容,在图像生成,传输或变换的过程中,由于多种因素的影响,造成图像质量下降,图像模糊,特征淹没,给分析和识别带来困难.因此,按特定的需要将图像中感兴趣的特征友选择地突出,衰减不需要的特征,提高图像的可懂度是图像增强的主要内容.图像增强不考虑图像降质的原因,而且改善后的图像也不一定逼近原图像,这是它与图像复原本质的区别.图像增强的主要目的有两个:一是改善图像的视觉效果,提高图像的清晰度:二是将图像转换成一种更适合人类或机器进行分析处理的形式,一边从图

【RAC】RAC相关基础知识

[RAC]RAC相关基础知识 1.CRS简介    从Oracle 10G开始,oracle引进一套完整的集群管理解决方案—-Cluster-Ready Services,它包括集群连通性.消息和锁.负载管理等框架.从而使得RAC可以脱离第三方集群件,当然,CRS与第三方集群件可以共同使用. (1).CRS进程 CRS主要由三部分组成,三部分都作为守护进程出现 <1>CRSD:资源可用性维护的主要引擎.它用来执行高可用性恢复及管理操作,诸如维护OCR及管理应用资源,它保存着集群的信息状态和OC

MySQL相关操作知识

1.解决客户端联不上MySQL服务器的问题: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION; FLUSH PRIVILEGES; 2.登陆MySQL: mysql -u root -p 123456 3.查看所有数据库:show databases; //注意s和分号 4.选择数据库:use 库名 5.查看当前选择的数据库:select database(); //注意分号 6.列出所选数

SQlite数据库相关语法知识

1.SQLite3是一款开源的嵌入式关系型数据库,可移植性好.易使用.内存开销比较小 SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中 2. SQLite3常用的5种数据类型:text(文本).integer(整型).real(浮点值).blob(二进制) 3. 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件 4. 创建或打开数据库 // path为:~/Documents/person.db sqlite3 *db; i

iOS蓝牙开发(一)蓝牙相关基础知识

原文链接: http://liuyanwei.jumppo.com/2015/07/17/ios-BLE-1.html iOS蓝牙开发(一)蓝牙相关基础知识: 蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE peripheral,central == 外设和中心,发起连接的时central,被连接的设备为peri