gpt4 book ai didi

objective-c - 复制 block (即 : copying them to instance variables) in Objective-C

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

我正在尝试理解 block 。当直接传递给方法时,我知道如何正常使用它们。我现在感兴趣的是获取一个 block ,将其存储(比如说)在一个实例变量中并稍后调用它。

block 编程指南听起来我可以通过使用 Block_copy/retain 来复制 block 来做到这一点,但是当我尝试运行它时我的程序崩溃了。

- (void) setupStoredBlock
{
int salt = 42;
m_storedBlock = ^(int incoming){ return 2 + incoming + salt; };
[m_storedBlock retain];
}

我稍后尝试调用它:

- (void) runStoredBlock
{
int outputValue = m_storedBlock(5);
NSLog(@"When we ran our stored blockwe got back: %d", outputValue);
[m_storedBlock release];
}

有人有什么见解吗? (或者,有什么我没有得到的 block 吗?)

非常感谢!

最佳答案

你会想要这样做:

- (void) setupStoredBlock
{
int salt = 42;
m_storedBlock = Block_copy(^(int incoming){ return 2 + incoming + salt; });
}

关于objective-c - 复制 block (即 : copying them to instance variables) in Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2659072/

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