gpt4 book ai didi

objective-c - 在 Objective c 中就地调用函数

转载 作者:行者123 更新时间:2023-12-03 17:05:18 25 4
gpt4 key购买 nike

我想定义一个选择器。我该怎么做?

即我想做这样的事情:

 [self performSelector:@selector( function() {variable = 3;} ) withObject:self afterDelay:3]; 

其中variable是调用该函数的类的int。

最佳答案

考虑使用blocks :

int multiplier = 7; 
int (^myBlock)(int) = ^(int num)
{
return num * multiplier;
};

printf("%d", myBlock(3));
// prints "21"

Apple 为许多操作提供了基于 block 的 API,而 @selector 回调是过去唯一的选择。请注意, block 仅在 iOS 4.0 及更高版本中可用(尽管存在 some solutions 允许在旧版 iOS 版本中使用基于 block 的代码)。

编辑:添加了一个在给定时间后调用 block 的更“真实”的示例:

dispatch_time_t  delay = dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC);
dispatch_queue_t queue = dispatch_get_main_queue();
dispatch_after(delay, queue, ^{variable = 3});

请注意,此示例使用 grand central dispatch这也仅适用于 iOS 4.0 及更高版本。

关于objective-c - 在 Objective c 中就地调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042251/

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