Ios 在objective-c中创建带有延迟参数的方法
我试图在objective-c中创建一个带有参数的方法,该参数是实际方法开始之前的秒数 我试图避免使用Ios 在objective-c中创建带有延迟参数的方法,ios,objective-c,nstimeinterval,Ios,Objective C,Nstimeinterval,我试图在objective-c中创建一个带有参数的方法,该参数是实际方法开始之前的秒数 我试图避免使用[自执行选择器:(SEL)with object:(id)afterDelay:(NSTimeInterval)]因为在我的方法中有延迟实际上会节省很多代码,因为我正计划向这个方法添加其他参数 该方法的示例: -(void) startMethodAfterArgumentDelay: (NSTimeInterval *)delay{ NSLog(@"perform action af
[自执行选择器:(SEL)with object:(id)afterDelay:(NSTimeInterval)]
因为在我的方法中有延迟实际上会节省很多代码,因为我正计划向这个方法添加其他参数
该方法的示例:
-(void) startMethodAfterArgumentDelay: (NSTimeInterval *)delay{
NSLog(@"perform action after argument delay");
}
如何称呼它:
[self startMethodAfterArgumentDelay:3.0f];
任何帮助都将不胜感激 您可以使用并编写如下代码:
[self bk_performBlock:^(id obj) {
//code
} afterDelay:delay];
您可以使用并编写如下代码:
[self bk_performBlock:^(id obj) {
//code
} afterDelay:delay];
如果您不想像另一个答案所建议的那样使用任何第三方库,那么使用GCD就很容易实现。请注意,此方法是异步的,因此即使块的内容延迟,您的方法也会立即返回
- (void)startMethodAfterArgumentDelay:(NSTimeInterval)delay
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"perform action after argument delay");
});
}
如果您不想像另一个答案所建议的那样使用任何第三方库,那么使用GCD就很容易实现。请注意,此方法是异步的,因此即使块的内容延迟,您的方法也会立即返回
- (void)startMethodAfterArgumentDelay:(NSTimeInterval)delay
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"perform action after argument delay");
});
}
只需在之后将
延迟
馈送到调度
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
// do whatever
});
只需在
之后将延迟
馈送到调度
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
// do whatever
});
明亮的在我将NSTimeInterval更改为float之后,它工作得完美无缺!谢谢你,太棒了!!在我将NSTimeInterval更改为float之后,它工作得完美无缺!非常感谢。