gpt4 book ai didi

objective-c - Objective-C 中的 block 变量

转载 作者:行者123 更新时间:2023-12-02 21:50:53 25 4
gpt4 key购买 nike

我对 Objective-C 中的 block 有疑问。

例如我有这个代码:

__block int count = 0;
void (^someFunction)(void) = ^(void){
count = 4;
};
count +=2;

编写同一段代码以使计数变为 6 而不是 2 的正确方法是什么?!

谢谢!

我可能应该显示实际的代码,因为我之前的问题很模糊。编辑:

__block CMTime lastTime = CMTimeMake(-1, 1);
__block int count = 0;
[_imageGenerator generateCGImagesAsynchronouslyForTimes:stops
completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime,
AVAssetImageGeneratorResult result, NSError *error)
{
if (result == AVAssetImageGeneratorSucceeded)
{
NSImage *myImage = [[NSImage alloc] initWithCGImage:image size:(NSSize){50.0,50.0}];
[arrOfImages addObject:myImage];
}

if (result == AVAssetImageGeneratorFailed)
{
NSLog(@"Failed with error: %@", [error localizedDescription]);
}
if (result == AVAssetImageGeneratorCancelled)
{
NSLog(@"Canceled");
}
if (arrOfImages.count > 5)
{
NSLog(@"here");
}
count++;
}];
int f = count+1;

10次迭代后计数为0...为什么?!?!

最佳答案

您没有执行该 block (调用 block someFunction 可能会产生误导)

__block int count = 0;
void (^someBlock)(void) = ^{
count = 4;
};
someBlock();
count +=2;

关于objective-c - Objective-C 中的 block 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053174/

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