gpt4 book ai didi

iphone - block 而不是 performSelector :withObject:afterDelay:

转载 作者:IT老高 更新时间:2023-10-28 11:21:06 25 4
gpt4 key购买 nike

我经常想在未来几微秒内执行一些代码。现在,我是这样解决的:

- (void)someMethod
{
// some code
}

还有这个:

[self performSelector:@selector(someMethod) withObject:nil afterDelay:0.1];

它有效,但我每次都必须创建一个新方法。是否可以使用 block 代替这个?基本上我正在寻找这样的方法:

[self performBlock:^{
// some code
} afterDelay:0.1];

这对我真的很有用。

最佳答案

没有内置的方法可以做到这一点,但通过类别添加也不错:

@implementation NSObject (PerformBlockAfterDelay)

- (void)performBlock:(void (^)(void))block
afterDelay:(NSTimeInterval)delay
{
block = [[block copy] autorelease];
[self performSelector:@selector(fireBlockAfterDelay:)
withObject:block
afterDelay:delay];
}

- (void)fireBlockAfterDelay:(void (^)(void))block {
block();
}

@end

归功于 Mike Ash用于基本实现。

关于iphone - block 而不是 performSelector :withObject:afterDelay:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com