Delayed perform
@interface NSObject (NSDelayedPerforming)
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay inModes:(NSArray *)modes;
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;
+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget selector:(SEL)aSelector object:(id)anArgument;
+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget;
@end
@interface NSRunLoop (NSOrderedPerform)
- (void)performSelector:(SEL)aSelector target:(id)target argument:(id)arg order:(NSUInteger)order modes:(NSArray *)modes;
- (void)cancelPerformSelector:(SEL)aSelector target:(id)target argument:(id)arg;
- (void)cancelPerformSelectorsWithTarget:(id)target;
@end
@interface NSObject (NSThreadPerformAdditions)
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array;
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
// equivalent to the first method with kCFRunLoopCommonModes
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array NS_AVAILABLE(10_5, 2_0);
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait NS_AVAILABLE(10_5, 2_0);
// equivalent to the first method with kCFRunLoopCommonModes
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg NS_AVAILABLE(10_5, 2_0);
@end
分享到:
相关推荐
在Objective-C(简称OC)中,`performSelector`方法是基于消息传递机制的关键特性之一,它允许我们在运行时动态地调用对象的方法。这个特性使得OC具有高度的灵活性和动态性,是许多设计模式和编程实践的基础。接下来...
可能包括动态生成的方法,使用`performSelector`调用这些方法,以及利用`respondsToSelector`来确保安全。同时,项目可能还会演示如何使用Category来扩展既有类的功能,以及如何使用`NSInvocation`处理多参数的调用...
本文将深入探讨`objc_msgSend`以及与其相关的`performSelector`方法,并通过实例来阐述它们的工作原理和用法。 **1. objc_msgSend函数** `objc_msgSend`是Objective-C运行时系统的核心,它是动态方法解析的关键。...
在iOS开发中,有时我们需要延迟执行某个操作,这时可以使用`performSelector`方法来实现。然而,如果在延迟执行之前需要取消这个操作,就需要用到`cancelPreviousPerformRequestsWithTarget`方法。本文将深入探讨这...
但是对于>2个的参数或者有返回值的处理,那performSelector:withObject就显得有点有心无力了,那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作 NSInvocation的基本使用 方法签名类 // 方法...
本压缩包"DelayTest.zip"中包含的示例代码着重展示了四种实现延时执行的方法:定时器(Timer)、GCD(Grand Central Dispatch)、NSThread以及performSelector。下面将详细介绍这四种方法及其应用场景。 1. **...
近日学习了延迟执行的几种方法,分享一下。 1.performSelector(NSObject)方法 ...特点:这个方法必须要在主线程中使用.可以传递参数.可以取消操作,不能暂停. //不带参数 [self performSelector:@selector(delayDo:
IOS多线程编程NSThread的使用方法 NSThread是多线程的一种,有两种方法创建子线程 (1)优点:NSThread 比GCD、NSOperation都轻量级 (2)缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有...
本文主要探讨在iOS中使用GCD进行延迟执行的方法。 首先,iOS提供了两种常见的延时执行方式: 1. 调用`performSelector:withObject:afterDelay:`方法。这是一个非常简单的延迟执行方法,它的特点是无论在哪里调用,...
- 在使用`performSelector:`系列方法时,要确保接收者能够响应指定的选择器,否则可能会导致运行时错误。可以使用`respondsToSelector:`方法进行检查。 - 在iOS开发中,避免使用未定义的选择器,这可能导致崩溃...
`performSelector:`系列方法就是这种机制的体现,它们允许我们延迟执行某个方法,直到运行时才决定具体调用哪个方法。 ### 2. `performSelectorInBackground:`详解 此方法的基本语法如下: ```objc - (void)...
本文将详细讲解如何通过编程实现这一过程,主要涉及`NSTimer`和`performSelector`两种方法。 首先,我们需要创建一个自定义的UICollectionViewCell,用于表示应用图标。在这个自定义cell中,我们将包含一个...
有时我们希望在未来的某个时刻执行某个操作,这时可以使用`performSelector:withObject:afterDelay:`方法。这个方法接受一个选择器、一个参数(如果有的话)和一个延迟时间,然后在指定的时间后执行对应的方法。 4...
本文将探讨iOS中的四种主要多线程方案:Pthreads、NSThread、GCD(Grand Central Dispatch)以及NSOperation和NSOperationQueue,并提供它们的使用方法、案例以及相关的同步和延迟执行等知识点。 首先,Pthreads是...
在这里,我们使用`NSSelectorFromString()`将方法名转换为`SEL`(选择器),然后通过`performSelector:withObject:`来执行这个方法。 三、反射访问和序列化对象属性 反射机制还可以用于遍历并访问对象的所有属性,...
`performSelector:` 是Objective-C中的一个方法,允许我们延迟执行某个方法。例如,如果想要延迟3秒后加载某个视图,可以这样做: ```objc [self performSelector:@selector(loadView) withObject:nil afterDelay:...
这种方法通过调用`sleep(1)`来模拟每秒过去,然后使用`performSelector`更新界面。首先,我们创建一个按钮`jumpBut`并在`viewDidLoad`中设置初始状态。然后定义一个变量`limitTime`表示总秒数,这里设置为6(包括...
本文将对比分析四种常见的iOS延迟执行方法:`performSelector:`、`NSTimer`、`sleep:`以及`GCD`,并探讨它们的特点和适用场景。 1. `performSelector:` 方法: 这是一种简单且易于使用的延迟执行方式。通过调用`...