gpt4 book ai didi

iphone - 在 Objective-C 中使用 block 作为 TargetAction

转载 作者:太空狗 更新时间:2023-10-30 03:59:05 24 4
gpt4 key购买 nike

在这个答案中:Can I pass a block as a @selector with Objective-C?

Lemnar 说你可以这样做:

id block = [^{NSLog(@"Hello, world");} copy];// Don't forget to -release.

[button addTarget:block
action:@selector(invoke)
forControlEvents:UIControlEventTouchUpInside];

具体应该在哪里发布?我想在 viewDidLoad 方法中使用它的地方,所以 viewDidUnload 似乎是释放它的地方,但是有没有办法在不创建 ivar 的情况下释放它?

最佳答案

不支持; invoke 方法不是公开的,Blocks 不打算直接用于这样的角色。

提交增强请求,作为解决方法,使用 objc_implementationWithBlock() 和 (IIRC) class_addMethod() 创建一个 block 即方法,将在目标行动。

关于iphone - 在 Objective-C 中使用 block 作为 TargetAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7893804/

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