gpt4 book ai didi

ios - 执行 block 数组的惯用方式

转载 作者:行者123 更新时间:2023-12-01 17:39:32 30 4
gpt4 key购买 nike

我有一个对象,可以执行任意更新队列。我使用块来体现更新。我使用addUpdate:方法添加更新。

- (void) addUpdate: (void(^)())block {
[self.updates addObject: block];
}

稍后,我要执行所有这些操作。我不在乎它们是否同时运行。基本的原始方式似乎是这样的:
for (NSUInteger index = 0; index < self.updates.count; index++) {
void (^block)() = self.updates[index];
block();
}

或快速枚举
for (void (^block)() in self.updates) {
block();
}

还是我应该对GCD做些什么才能实现这一目标?

最佳答案

我能想到的最简洁的方法是:

[self.updates makeObjectsPerformSelector: @selector(invoke)];

多么“惯用”可能取决于情况。

编辑:这取决于一个事实,即块在运行时作为Objective-C对象实现,并响应选择器 -invoke。换句话说,表达式 block();也可以表示为 [block invoke];。我不知道执行块数组的任何更简洁的方法。

关于ios - 执行 block 数组的惯用方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189705/

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