gpt4 book ai didi

ios - Autoreleasepool 和 dispatch_async

转载 作者:可可西里 更新时间:2023-11-01 06:23:47 30 4
gpt4 key购买 nike

看了GCD的文章,有个例子:

dispatch_queue_t bgQueue = myQueue;
dispatch_async(dispatch_get_main_queue(), ^{
NSString *stringValue = [[[textField stringValue] copy] autorelease];
dispatch_async(bgQueue, ^{
// use stringValue in the background now
});
});

如果我将该方法放在点击处理程序中(将在 autoreleasepool 中调用),我是否会丢失 stringValue,因为 autoreleasepool 将在点击事件后被销毁?

最佳答案

在那个内部 block 里面?不,你不会失去那个值(value)。当一个 Objective-C 对象变量(尚未声明为 __block)在 block 内被引用并且 block 被复制时,该对象会自动保留。当 block 被释放时,该对象也将被释放。 dispatch_async()负责复制和释放 block 。

关于ios - Autoreleasepool 和 dispatch_async,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927052/

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