前者是在主线程下完成的, 不会自动创建一个线程. 后者会创建一个新的线程.…
////  RootViewController.h//  DSCategories////  Created by dasheng on 15/12/17.//  Copyright © 2015年 dasheng. All rights reserved.//#import <UIKit/UIKit.h>@interface RootViewController : UITableViewController@end ////  RootViewController.m//  DSCate…
一.performSelector调用和直接调用区别下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结, [delegate imageDownloader:self didFinishWithImage:image]; [delegate performSelector:@selector(imageDownloader:didFinishWithImage:)withObject:sel…
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay; --1-- 知识点:这个方法是单线程的,也就是说只有当前调用此方法的函数执行完毕后,selector方法才会被调用. - (void)mainMethod { [self performSelector:@selector(delayMethod) withObject:nil afterDelay:…
多线程下的performSelector和NSThread的使用 NSThread的多线程使用: 我们可以使用这两种方法来使用线程中的问题 - (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument + (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument 第一个是实例方法,传统…
在此我对performSelector系列方法进行了总结 1. - (id)performSelector:(SEL)aSelector; - (id)performSelector:(SEL)aSelector withObject:(id)object; - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2; 这三个方法都是同步执行,与线程无关,在需要动态的去调用方法的时候去使用.…
performSelector和直接调用方法的区别 performSelector: withObject:是在iOS中的一种方法调用方式.他可以向一个对象传递任何消息,而不需要在编译的时候声明这些方法.所以这也是runtime的一种应用方式.所以performSelector和直接调用方法的区别就在与runtime.直接调用编译是会自动校验.如果方法不存在,那么直接调用 在编译时候就能够发现,编译器会直接报错. 但是使用performSelector的话一定是在运行时候才能发现,如果此方法不存…
PerformSelector 1. 执行和取消 //执行 [self performSelector:@selector(showMessage) withObject:nil afterDelay:]; //取消 [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(showMessage) object:nil]; (1)PerformSelector与直接调用的区别 performSelecto…
iOS中timer相关的延时调用,常见的有NSObject中的performSelector:withObject:afterDelay:这个方法在调用的时候会设置当前runloop中timer,还有一种延时,直接使用NSTimer来配置任务. 这两种方式都一个共同的前提,就是当前线程里面需要有一个运行的runloop并且这个runloop里面有一个timer. 我们知道:只有主线程会在创建的时候默认自动运行一个runloop,并且有timer,普通的子线程是没有这些的.这样就带来一个问题了,有…
一.performSelector调用和直接调用区别 下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结, [delegate imageDownloader:self didFinishWithImage:image]; [delegate performSelector:@selector(imageDownloader:didFinishWithImage:)withObject:se…